home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #2 / Amiga Plus CD - 1995 - No. 2.iso / internet / faq / englisch / inn < prev    next >
Encoding:
Text File  |  1995-04-11  |  174.3 KB  |  4,667 lines

  1. Posted-By: post_faq 2.10
  2. Archive-name: usenet/software/inn-faq/part1
  3. Last Changed: $Id: FAQ-inn.1,v 1.111 1995/03/02 09:14:01 tal Exp $
  4.  
  5.                   Part 1 of 4
  6.  
  7. INN FAQ Part 1/4: General Information:
  8.                      Questions from people that don't (yet) run INN
  9.                      Specific notes for specific operating systems
  10. INN FAQ Part 2/4: Debugging Guide & Tutorial:
  11. INN FAQ Part 3/4: Operational and Misc. Questions
  12. INN FAQ Part 4/4: Appendix A: Norman's install guide
  13.  
  14.  
  15. ------------------------------
  16.  
  17. Subject:  Table Of Contents for Part 1/4
  18.  
  19. =====================================================================
  20.         TABLE OF CONTENTS FOR PART 1/4:  General Information
  21. =====================================================================
  22.  
  23. QUESTIONS FROM PEOPLE THAT DON'T (YET) RUN INN:
  24.     What is INN?
  25.     Where can I get the INN software?
  26.     Where can I get the latest copy of this FAQ?
  27.     What machines does it run on?
  28.     INN must be really complicated since this FAQ is so long!
  29.     Can I run C News with INN?
  30.     Can I run NNTP with INN?
  31.     Can I run the reference implementation (NNTP1.5) with INN?
  32.     Can I run INN on my UUCP-only machine?
  33.     Suppose I have a 286 machine?
  34.     Does INN implement NOV, xthread (trn) or xuser/xmotd (tin) commands?
  35.     Is an ident or authorization protocol supported?
  36.     Does INN do UUCP batching like C News?
  37.     Help!  How do I configure this beast?
  38.     How do I thank the FAQ maintainer?
  39.  
  40. SPECIFIC NOTES FOR SPECIFIC OPERATING SYSTEMS:
  41.     BASH tips
  42.     GNUS tips
  43.     AIX tips
  44.     SunOS 4.1.2 tips
  45.     Ultrix tips
  46.     HP-UX tips
  47.     UnixWare tips
  48.     Linux tips
  49.     A/UX 3.0 (Macintosh) tips
  50.     Alpha OSF tips
  51.     SGI IRIX 5.x tips
  52.     Pyramid and system's where only root can have "cron" jobs.
  53.     All System V based Unixes (SVR4, Solaris 2.x, SCO ODT 3.0, AIX, A/UX, DELL, ...)
  54.     Solaris 2.x special needs
  55.     Slackware
  56.     3Com Router users
  57.     NOV problems on a Pyramid
  58.     Warnings to people that must set HAVE_UNIX_DOMAIN to DONT
  59.  
  60.  
  61. The FAQ was written by Rich $alz <rsalz@rodan.uu.net> and is now
  62. maintained by Tom Limoncelli <tal@plts.org>.
  63.  
  64. These documents would not exist if it weren't for the people that have
  65. submitted questions and (most importantly) answers.  THANK YOU ALL!
  66.  
  67.  
  68. =====================================================================
  69.            QUESTIONS FROM PEOPLE THAT DON'T (YET) RUN INN
  70. =====================================================================
  71.  
  72.  
  73. ------------------------------
  74.  
  75. Subject:  What is INN?
  76.  
  77. For a complete answer, why not read the Usenix paper that introduced
  78. INN to the world?  It's available as
  79. ftp.uu.net:networking/news/nntp/inn/inn.usenix.ps.Z
  80.  
  81. InterNetNews is a complete Usenet system.  The cornerstone of the package
  82. is innd, an NNTP server that multiplexes all I/O.  Think of it as an nntpd
  83. merged with the B News inews, or as a C News relaynews that reads multiple
  84. NNTP streams.  Newsreading is handled by a separate server, nnrpd, that is
  85. spawned for each client.  Both innd and nnrpd have some slight variances
  86. from the NNTP protocol (although in normal use you will never notice); see
  87. the manpages.  INN separates hosts that feed you news from those that have
  88. users reading news.  If you need to support a mixed environment you will have
  89. to do some extra work; the installation manual gives some hints.
  90.  
  91.  
  92. ------------------------------
  93.  
  94. Subject:  Where can I get the INN software?
  95.  
  96. The official archive site is ftp.uu.net in the directory
  97. networking/news/nntp/inn.  Archie current lists over 30 archive sites;
  98. three other international sites are ftp.univ-lyon1.fr in
  99. pub/unix/news/inn, munnari.oz.au in pub/news/inn, and src.doc.ic.ac.uk
  100. in computing/usenet/software/transport
  101.  
  102. The latest version of INN is 1.4sec.  This is rev. 1.4 with a slight
  103. modification of certain shell scripts to fix a security hole.  Do
  104. not run 1.4 without the patch (see part 3/4 of this FAQ).
  105.  
  106. Patches for INN are at: ftp://ftp.pop.psu.edu/pub/src/news/inn/patches
  107. Add-ons for INN are at: ftp://ftp.pop.psu.edu/pub/src/news/inn/contrib
  108. ("Add-ons" include "Gup" and other interesting tools)
  109.  
  110.  
  111. ------------------------------
  112.  
  113. Subject:  Where can I get the latest copy of this FAQ?
  114.  
  115. 1.  This four-part FAQ is available via FTP at any FTP site that carries
  116. INN itself.
  117.  
  118. 2.  This FAQ is also posted to news.software.nntp, news.software.b and
  119.     news.answers about every 10 days.
  120.  
  121. 3.  You can also get this FAQ by sending email to
  122. majordomo@plts.org with "get file faq-inn-1" on the first
  123. line of the message.  (the Subject: of the message will be ignored.)
  124. (Substitute faq-inn-2, faq-inn-3 or faq-inn-4 to get those parts).
  125.  
  126. For example:
  127.  
  128. echo get file faq-inn-1 | mail majordomo@plts.org
  129. echo get file faq-inn-2 | mail majordomo@plts.org
  130. echo get file faq-inn-3 | mail majordomo@plts.org
  131. echo get file faq-inn-4 | mail majordomo@plts.org
  132.  
  133. or
  134.  
  135. % mail majordomo@plts.org
  136. Subject: ignored
  137. get file faq-inn-1
  138. get file faq-inn-2
  139. get file faq-inn-3
  140. get file faq-inn-4
  141. ^D
  142.  
  143. or if you csh and are a total nerd, you can:
  144.     echo 'get file faq-inn-'{1,2,3,4}@ \
  145.         | tr @ '\012' | mail majordomo@plts.org
  146.  
  147. ...or get a real hobby.
  148.  
  149.  
  150. ------------------------------
  151.  
  152. Subject:  What machines does it run on?
  153.  
  154. If you have socket() and select() then INN will probably run on your
  155. machine.  In addition to the common platforms found around the Internet
  156. (SunOS and Ultrix, for example), INN runs on IBM's AIX, Apple's A/UX,
  157. NeXT, Solaris 2.x, most SVR4 platforms, BSDI, most free BSD systems 
  158. (NetBSD, FreeBSD, ...) and a host of others.  It might require a
  159. little bit of tweaking of some free BSD platforms that have really bad
  160. shells.
  161.  
  162. INN has not been ported to Windows NT.  There are no plans to do so.
  163. However, someone has written a package called NNS (Usenet Network News
  164. Server) which is a NNTP-compliant news server for Windows NT.  For
  165. information write to nns@jeck.wa.com.
  166.  
  167.  
  168. ------------------------------
  169.  
  170. Subject:  INN must be really complicated since this FAQ is so long!
  171.  
  172. No, it's just that the FAQ is very complete.  Part 2 is so long because
  173. it includes a tutorial that tries to turn a beginner into an TCP/IP
  174. protocol expert.  Part 3 is long because the FAQ maintainer is
  175. constantly trying to add every question ever asked on
  176. news.software.nntp.  Maybe someone should volunteer to maintain an
  177. index.
  178.  
  179. A lot of the material could be integrated into the Install.ms doc.
  180.  
  181. Please post questions to news.software.nntp.  Do not send
  182. email to Tom Limoncelli directly.  By posting your question,
  183. a group of 10 or so people will be trying to help you.
  184.  
  185.  
  186. ------------------------------
  187.  
  188. Subject:  Can I run C News with INN?
  189.  
  190. No.  INN handles all article reception, filing, forwarding, and
  191. expiration.  You will get a corrupted database if you try to
  192. run INN with any other news system.  For testing, you can probably shut
  193. down your old system, bring up INN, and then reverse the process.  (INN
  194. uses the C News history file and DBZ database, so if you don't run C News
  195. you will have to do some fiddling around with those files.)
  196.  
  197.  
  198. ------------------------------
  199.  
  200. Subject:  Can I run NNTP with INN?
  201.  
  202. There's a confusion here.  NNTP is a protocol, defined in RFC 977.  There
  203. is also an implementation of the protocol, NNTP1.5, that many people call
  204. NNTP.  When there was only one implementation of the protocol, that was
  205. okay, but now that there are other implementations (for example, INN) it
  206. is getting confusing.  It would be as if "sendmail" were named "smtp."
  207. Please try to be clear -- do you mean the NNTP protocol, or the NNTP
  208. reference implementation currently maintained by Stan Barber?
  209.  
  210.  
  211. ------------------------------
  212.  
  213. Subject:  Can I run the reference implementation (NNTP1.5) with INN?
  214.  
  215. The quick answer is no.  INN listens on the NNTP port and handles all
  216. incoming traffic.  It receives articles, files them, and arranges for
  217. them to be forwarded to your peers.  If a site connects that is not
  218. listed as a peer (e.g., a local workstation that does newsreading) then
  219. the INN server hands the connection off to another program that handles
  220. just the NNTP commands that newsreaders use.  By default, this is nnrpd
  221. (notice the "r"), which implements the NNTP protocol for newsreaders
  222. (for example, it includes the POST command but not the IHAVE command).
  223. You can run the reference implementation server instead of nnrpd if you
  224. want.  Doing this can be useful if you have clients that want to do
  225. both reading and article transfer.
  226.  
  227.  
  228. ------------------------------
  229.  
  230. Subject:  Can I run INN on my UUCP-only machine?
  231.  
  232. Sure.  While not designed for this, several people are running INN on
  233. machines that do not have IP-connectivity (such as UUCP-only hosts) and
  234. are quite happy with it.  You might want to give it a try, especially if
  235. you think you will be joining the Internet some day.
  236.  
  237.  
  238. ------------------------------
  239.  
  240. Subject:  Suppose I have a 286 machine?
  241.  
  242. Won't work.  INN is designed to be a memory hog; a server that has been up
  243. for a few days while will have a working set size of a few to several
  244. megabytes, although not all of it will be resident.  For example, the
  245. server keeps the active file and list of who gets what in memory, as well
  246. as all articles that it is receiving.  Unless you can do things like
  247. "malloc(64 * 1024)" without pain, INN won't work on your machine.
  248.  
  249.  
  250. ------------------------------
  251.  
  252. Subject:  Does INN implement NOV, xthread (trn) or xuser/xmotd (tin) commands?
  253.  
  254. Newsreaders all need some way to quickly grab data from
  255. a range of articles.  trn, tin, nn, and others each developed
  256. their own database format, and their own extensions to the NNTP
  257. protocol for clients to read the database.  Then, Geoff Collyer
  258. invented NOV, the database to end all other databases.
  259.  
  260. Rather than support a different database format for each newsreader,
  261. INN supports Geoff Collyer's news overview database, NOV.  INN includes
  262. everything you need to create/maintain/expire NOV's .overview files.
  263. You only need Geoff's distribution (available via FTP on world.std.com
  264. src/news/nov.dist.tar.Z) if you want to see how he implements things,
  265. or to get his client library (useful when building some newsreaders).
  266.  
  267. It is very easy to configure INN to use NOV.  Read Part 2/4 of
  268. this faq: Subject: Cookbook example of setting up NOV ("overchan")
  269. NB: The NOV code in INN 1.3 is buggy.  Use 1.4 or higher.
  270.  
  271. The xover command is used for querying the NOV database.  The xover
  272. command is very smart in that if the article has been canceled, the
  273. data isn't given out.  If the article is so new that it's data isn't in
  274. the NOV database, nnrpd opens the article and digs out the data.  xhrd
  275. and xpat make every effort to use NOV data before they dig the data out
  276. of the actual articles, thus making them considerably faster than other
  277. implementations.  The "xoverview" command does not exist.  If your
  278. server supports this command you need to upgrade.
  279.  
  280. What about TRN's xthread command?
  281.  
  282. The xthread command has code but it is not supported; look at
  283. $inn/nnrpd/nnrpd.h.  This code will probably vanish after 1.4.
  284.  
  285. What about TIN's many commands?
  286.  
  287. Tin commands are not supported.  However, other people have
  288. added TIN support.  See the next section.
  289.  
  290.  
  291.  
  292. ------------------------------
  293.  
  294. Subject:  Is an ident or authorization protocol supported?
  295.  
  296. An unsupported patch for nnrpd to add ident support can be found via
  297. FTP at ftp.csie.nctu.edu.tw:/pub/news/nnrpd-identd-patch.shar.gz.  It
  298. includes patches to add tin's xuser and xmotd commands as well as a
  299. list subscription system. (skhuang@csie.nctu.edu.tw)
  300.  
  301. Remember: ident information is only as valid as the server you connect
  302. to.  Any fool with root access (or anyone with a PC or Mac) can create
  303. a bogus ident server that will give out whatever information they want
  304. you to see.  It's not an authorization or identification protocol, it's
  305. just informational.
  306.  
  307. The authd protocol is added to nnrpd by <nhiro@isci.kyutech.ac.jp>.
  308. This unsupported patch can be found in
  309. ftp.geophys.hokudai.ac.jp:/pub/network/news/inn/patches/authd-patch-1.3.tar.gz
  310. The documentation is in Japanese.  Good luck.
  311.  
  312. In a future release, you will be able to log all POST commands with
  313. ident information if you so choose.  (Maybe INN 1.5)
  314.  
  315.  
  316. ------------------------------
  317.  
  318. Subject:  Does INN do UUCP batching like C News?
  319.  
  320. Not as part of the standard distribution.  The batching system right
  321. now is better than B News, but Rich has said he will be working on
  322. improving that part of INN in a future release.  Christophe Wolfhugel
  323. <Christophe.Wolfhugel@grasp.insa-lyon.fr> has written a package that is
  324. very much like the C News batching system, however.  You can find it on
  325. ftp.univ-lyon1.fr in the pub/unix/news/inn/contrib directory.
  326.  
  327. Version 3 of Christophe's package includes a shell version and a Perl
  328. version.  Version 4, not yet planned will only be in Perl.  The
  329. configuration file has evolved from older releases in order to support
  330. new features like "minimum batching".
  331.  
  332.  
  333. ------------------------------
  334.  
  335. Subject:  Help!  How do I configure this beast?
  336.  
  337. READ AND FOLLOW THE "Install.ms" FILE.  This FAQ is meant to add to
  338. what Install.ms says not replace it.
  339.  
  340. Many people that thought the Install.ms doc was incomplete later
  341. re-read the "First Time Installation" portion and were amazed how much
  342. they missed (or just plain skipped) the first time.
  343.  
  344. You should also purchase the O'Reilly And Associates book on Managing
  345. Usenet to give yourself a good grounding on how to run a site.
  346.  
  347.  
  348. ------------------------------
  349.  
  350. Subject:  How do I thank the FAQ maintainer?
  351.  
  352. If you find this document useful, please consider making a donation to
  353. the maintainer's favorite charity:
  354.  
  355.     The Personal Liberty Fund
  356.     PO Box 11335
  357.     New Brunswick, NJ 08906-1335
  358.     USA
  359.  
  360. The PLF is a legal and educational organization which helps people in
  361. New Jersey, USA.  They have many on-going projects which range from
  362. combating youth suicide to legal advocacy.  Their Anti-Violence Project
  363. runs a phone hotline for reporting gay-bashing which helps hundreds of
  364. people a year.  The PLF is an all-volunteer organization and couldn't
  365. survive without donations.  The PLF is recognized by the IRS as a
  366. 501(c)3 tax-exempt charity.  Donations are tax deductible to the
  367. fullest extent of the law (U.S. citizens only).  Please write "INN" in
  368. the memo field of the check.  Fifteen, fifty, or five hundred dollars...
  369. every penny is appreciated!
  370.  
  371.  
  372. ======================================================================
  373.             SPECIFIC NOTES FOR SPECIFIC OPERATING SYSTEMS
  374. ======================================================================
  375.  
  376. ------------------------------
  377.  
  378. Subject: BASH tips
  379.  
  380. If you are using a Unix who's /bin/sh is a hardlink to
  381. bash, you'll find problems using nntpsend.  nntpsend uses
  382. a variable named PPID, which is a read-only variable in BASH.
  383.  
  384. You'll get errors that look like this:
  385. sh: PPID: read-only variable
  386.  
  387. You can fix it using the the following patch:
  388.  
  389.  
  390. *** nntpsend~   Thu Aug 12 03:36:16 1993
  391. --- nntpsend    Sat Oct 23 15:54:11 1993
  392. ***************
  393. *** 1,4 ****
  394. ! #! /bin/sh
  395.   ##  $Revision: 1.111 $
  396.   ##  Send news via NNTP by running several innxmit processes in the background.
  397.   ##  Usage:
  398. --- 1,4 ----
  399. ! #!/usr/local/bin/bash
  400.   ##  $Revision: 1.111 $
  401.   ##  Send news via NNTP by running several innxmit processes in the background.
  402.   ##  Usage:
  403. ***************
  404. *** 130,140 ****
  405.       chmod 0660 ${LOG}
  406.       exec >>${LOG} 2>&1
  407.   fi
  408. ! PPID=$$
  409. ! echo "${PROGNAME}: [${PPID}] start"
  410.   
  411.   ##  Set up environment.
  412. ! export BATCH PROGNAME PPID INNFLAGS
  413.   
  414.   ##  Loop over all sites.
  415.   cat ${INPUT} | while read SITE HOST MAXSIZE FLAGS; do
  416. --- 130,140 ----
  417.       chmod 0660 ${LOG}
  418.       exec >>${LOG} 2>&1
  419.   fi
  420. ! CPID=$$
  421. ! echo "${PROGNAME}: [${CPID}] start"
  422.   
  423.   ##  Set up environment.
  424. ! export BATCH PROGNAME CPID INNFLAGS
  425.   
  426.   ##  Loop over all sites.
  427.   cat ${INPUT} | while read SITE HOST MAXSIZE FLAGS; do
  428. ***************
  429. *** 240,246 ****
  430.       fi
  431.   
  432.       ##  Start sending this site in the background.
  433. !     export SITE HOST LOCKS BATCHFILE PROGNAME PPID SIZE TMPDIR
  434.       sh -c '
  435.         BATCHFILE=${HOST}.nntp
  436.         LOCK=${LOCKS}/LOCK.${HOST}
  437. --- 240,246 ----
  438.       fi
  439.   
  440.       ##  Start sending this site in the background.
  441. !     export SITE HOST LOCKS BATCHFILE PROGNAME CPID SIZE TMPDIR
  442.       sh -c '
  443.         BATCHFILE=${HOST}.nntp
  444.         LOCK=${LOCKS}/LOCK.${HOST}
  445. ***************
  446. *** 247,253 ****
  447.         trap "rm -f ${LOCK} ; exit 1" 1 2 3 15
  448.         shlock -p $$ -f ${LOCK} || {
  449.             WHY="`cat ${LOCK}`"
  450. !           echo "${PROGNAME}: [${PPID}:$$] ${HOST} locked ${WHY} `date`"
  451.             exit
  452.         }
  453.         if [ -f ${SITE}.work ] ; then
  454. --- 247,253 ----
  455.         trap "rm -f ${LOCK} ; exit 1" 1 2 3 15
  456.         shlock -p $$ -f ${LOCK} || {
  457.             WHY="`cat ${LOCK}`"
  458. !           echo "${PROGNAME}: [${CPID}:$$] ${HOST} locked ${WHY} `date`"
  459.             exit
  460.         }
  461.         if [ -f ${SITE}.work ] ; then
  462. ***************
  463. *** 254,259 ****
  464. --- 254,260 ----
  465.             cat ${SITE}.work >>${BATCHFILE}
  466.             rm -f ${SITE}.work
  467.         fi
  468. +       if [ -s ${SITE} ] ; then
  469.         mv ${SITE} ${SITE}.work
  470.         if ctlinnd -s -t30 flush ${SITE} ; then
  471.             cat ${SITE}.work >>${BATCHFILE}
  472. ***************
  473. *** 260,273 ****
  474.             rm -f ${SITE}.work
  475.             test -n "${SIZE}" && shrinkfile -s${SIZE} -v ${BATCHFILE}
  476.             if [ -s ${BATCHFILE} ] ; then
  477. !               echo "${PROGNAME}: [${PPID}:$$] begin ${HOST} `date`"
  478. !               echo "${PROGNAME}: [${PPID}:$$] innxmit ${INNFLAGS} ${HOST} ..."
  479.                 eval innxmit ${INNFLAGS} ${HOST} ${BATCH}/${BATCHFILE}
  480. !               echo "${PROGNAME}: [${PPID}:$$] end ${HOST} `date`"
  481.             else
  482.                 rm -f ${BATCHFILE}
  483.             fi
  484.         fi
  485.         rm -f ${LOCK}
  486.       ' &
  487.       sleep 5
  488. --- 261,275 ----
  489.             rm -f ${SITE}.work
  490.             test -n "${SIZE}" && shrinkfile -s${SIZE} -v ${BATCHFILE}
  491.             if [ -s ${BATCHFILE} ] ; then
  492. !               echo "${PROGNAME}: [${CPID}:$$] begin ${HOST} `date`"
  493. !               echo "${PROGNAME}: [${CPID}:$$] innxmit ${INNFLAGS} ${HOST} ..."
  494.                 eval innxmit ${INNFLAGS} ${HOST} ${BATCH}/${BATCHFILE}
  495. !               echo "${PROGNAME}: [${CPID}:$$] end ${HOST} `date`"
  496.             else
  497.                 rm -f ${BATCHFILE}
  498.             fi
  499.         fi
  500. +       fi
  501.         rm -f ${LOCK}
  502.       ' &
  503.       sleep 5
  504. ***************
  505. *** 275,278 ****
  506.   
  507.   wait
  508.   rm -f ${INPUT}
  509. ! echo "${PROGNAME}: [${PPID}] stop"
  510. --- 277,280 ----
  511.   
  512.   wait
  513.   rm -f ${INPUT}
  514. ! echo "${PROGNAME}: [${CPID}] stop"
  515.  
  516.  
  517. ------------------------------
  518.  
  519. Subject:  GNUS tips
  520.  
  521. In article <3g82ll$mr4@tid.tid.es> emilio@tid.es (Emilio Losantos) writes:
  522.  
  523. > I have to use GNUS 4.1 to read news from a nntp server running INN 1.4, but
  524. > whenever I try to select a group I receive the message:
  525.  
  526. >  "GROUP" not implemented; try "help"
  527.  
  528. > Could anybody tell me how to fix this problem?
  529.  
  530. jbryans@csulb.edu (Jack Bryans) replies:
  531.  
  532. Patch your nntp.el something like this:
  533.  
  534. *** 72,77 ****
  535. --- 72,79 ----
  536.     (set-process-sentinel nntp/connection 'nntp/sentinel)
  537.     (process-kill-without-query nntp/connection)
  538.     (let ( (code (nntp/response)) )
  539. +     (nntp/command "mode reader")
  540. +     (nntp/response)
  541.       (or (eq code 200) (eq code 201))))
  542.   
  543.   (defun nntp-server-opened ()
  544.  
  545. Note that your line numbers may vary.  There's a lot of nntp.el's out there.
  546.  
  547.  
  548.  
  549. ------------------------------
  550.  
  551. Subject:  AIX tips
  552.  
  553. Q:  In config.data, should ACT_STYLE be set to READ or MMAP?
  554.  
  555. A:  Gee, some say MMAP works, some say it doesn't.  I recommend you use
  556. READ.  After you've been running for a month, try MMAP for a day and
  557. see what happens.
  558.  
  559.  
  560. Q: What compiler should I use?
  561.  
  562. A: Most people use what's listed in Install.ms, though we have
  563. one report of a AIX 3.2.5 user that found bsdcc worked better.
  564.  
  565.  
  566. Q: When I run news.daily, there's always a few lines of error
  567. messages at the end of the output:
  568.  
  569.     compress: bad file number
  570.  
  571. A:  AIX /usr/bin/compress has a bug when compressing files with zero
  572. length. Then it spits out this error.  Solution: Ignore it or use a
  573. different compress programm and change config.data accordingly.
  574. (from Kurt Jaeger <pi@rus.uni-stuttgart.de>)
  575.  
  576.  
  577. Q:  innwatch doesn't work well from /etc/inittab, does it?
  578.  
  579. A:  Nope.  Instead, you can create a "subsystem" with this command:
  580.  
  581. mkssys -s innwatch -p /usr/local/news/bin/innwatch \
  582.     -u `id -u news` -G news -S -n 15 -f 9
  583.  
  584. Note that your path to innwatch may differ, depending on where you
  585. decided to install the inn components.  You also need to enter the
  586. command as one long line.
  587.  
  588. This will create a subsystem named "innwatch" belonging to an SRC group
  589. named "news".  The "-S" means that it uses signals for SRC to tell it
  590. when to stop and the "-n" is the SIGTERM signal, for normal shutdown,
  591. and the "-f" is the SIGKILL signal, which is sent if the process does
  592. not stop within 20 seconds.  Then, modify rc.news to issue the command
  593.  
  594.     startsrc -s innwatch
  595.  
  596. to get innwatch going.  That's it!
  597.  
  598. Shane Castle <swcxt@boco.co.gov, swcxt@csn.org>
  599.  
  600.  
  601. Q:  When I compile I get something like:
  602.     0706-317 ERROR: Unresolved or undefined symbols detected:
  603.         Symbols in error (followed by references) are
  604.         dumped to the load map.
  605.         The -bloadmap:<filename> option will create a load map.
  606.         .dbzwrit
  607.     cd frontends ; make  all ; cd ..
  608.     Target all is up to date.
  609. A:  That means you don't have a program called "patch" installed on
  610. your machine.  Refer to "Subject:  ld.so: Undefined symbol: _dbzwritethrough"
  611.  
  612.  
  613. Q:  What can I change in innwatch.ctl to make it work right?
  614.  
  615. A:  The "df" command in AIX has a funny output that requires you to
  616. modify innwatch.ctl.  The FTP site has an install.ctl that uses "df -i"
  617. (some AIX versions) and another one that uses "df -v" (recommended by
  618. someone with AIX 3.2.5).
  619.  
  620.  
  621. ------------------------------
  622.  
  623. Subject:  SunOS 4.1.1 tips
  624.  
  625. SunOS 4.1.1 (but not 4.1.2 or 4.1.3) broke the write system call but a
  626. patch is available.  Any write could fail "half way", it is just more
  627. likely to happen when writing large files and in-core DBZ writes the
  628. history file out in one chunk.  The "Known Problems" section of the
  629. installation manual says to install Patch 100293-01, but that has
  630. been replaced by 100622-01.
  631.  
  632.  
  633. ------------------------------
  634.  
  635. Subject:  Ultrix tips
  636.  
  637. Tip #1:  Ultrix has a "mmap()" function, but it doesn't do the same
  638. thing as the SunOS/BSD mmap() function.  Therefore, do not configure
  639. INN to use mmap() on a Ultrix system.  INN wants to find a mmap()
  640. function that is like the one on SunOS/BSD systems.
  641.  
  642. Tip #2:  The sendsys script breaks Ultrix 'nawk'.  You can make
  643. a 1-line change or you can switch to 'awk' or "gawk".
  644. Original line:
  645.     ${AWK} "/^$1"'[/:\\]/,/[^\\]$/' ${NEWSFEEDS} >${TEMP}
  646. Modified line:
  647.     ${AWK} "/^$1"'[\/:\\]/,/[^\\]$/' ${NEWSFEEDS} >${TEMP}
  648. The original line will work with awk, gawk, but not nawk.
  649. The modified line will work with awk, gawk, or nawk.
  650. If you have gawk running on your machine use it.  Otherwise, switch to
  651. awk.
  652.  
  653. Tip #3: The syslog on Ultrix sucks rotten eggs and Digital refuses to
  654. fix it.  (source: everyone that uses Ultrix and has ever used other
  655. systems)  Luckily, you can replace it with the routine that comes with
  656. INN.  However, some people have had better luck installing the syslog
  657. that can be found on
  658. "gatekeeper.dec.com:/pub/DEC/jtkohl-syslog-complete.tar.Z".  It still
  659. works with old clients but does new-style syslogging, too.  Works great
  660. for me so far.  (this information from:  nelson@reed.edu (Nelson
  661. Minar)).  The syslog that is shipped with INN works pretty well but
  662. there have been some claims that some old clients don't like it.
  663.  
  664.  
  665. ------------------------------
  666.  
  667. Subject:  HP-UX tips
  668.  
  669. Q.  My logs keep telling me there is no space for articles
  670. A.  Edit innwatch.ctl to use "bdf" instead of "df".
  671.  
  672. Q. I am running inn on an HP machine. INN won't start up automatically.
  673. I can start it manually.  There is no problem with news or INN once
  674. it is started.
  675.  
  676. A.  Try adding a "sleep 10" to the bottom of /etc/rc.news, or in
  677. /etc/rc, right after /etc/rc.news is invoked.  On some machines,
  678. including HP, the shell started by "#!/bin/sh" when /etc/rc is executed
  679. will exit before innd has disassociated itself from that shell.  This
  680. causes innd to exit, sometimes without printing an error message.
  681. (source: pjoslin@mbvlab.wpafb.af.mil (Paul Joslin ))
  682.  
  683. This problem goes away if you set HAVE_SETSID to "DO".  Something to do
  684. with Posix Session Leader concepts.  Ick.  (source: Steve Howie 
  685. <showie@uoguelph.ca>).  You can also do something like:
  686.  
  687.     echo /usr/lib/etc/rc.news | at now + 2 minutes
  688.  
  689. HP-UX 8.x and 9.x users might find a problem with getting innwatch to
  690. start up.  People have found that having "at" start it seems to work
  691. more reliably than other methods:
  692.  
  693. ${DOINNWATCH} && {
  694.     echo "${INNWATCH} &" | su ${NEWSUSER} -c 'at now + 2 min' > /dev/null
  695. }
  696.  
  697. The '&' in the command line prevents innwatch from taking up an at-job 
  698. slot.  SysV-style crons have a per-category and overall limit on the 
  699. number of jobs executing simultaneously.
  700.  
  701. Q:  INN-1.4sec running on an HP9000 s700 with HP-UX 9.01 leaks memory
  702. like crazy.  The innd process grows and grows, then stops with:
  703.  
  704.     "ME cant remalloc 8192 bytes Not enough space"
  705.  
  706. A:  The cause turns out to be a memory leak in the standard C library (both
  707. /lib/libc.a and /lib/libc.sl).  Installed patch PHCO_5056 (or the latest
  708. libc patch).
  709.  
  710.  
  711. ------------------------------
  712.  
  713. Subject:  UnixWare tips
  714.  
  715. UnixWare 1.1.2 works with domain sockets.  Install
  716. ptf149 "unix domain sockets" and
  717. ptf678 "fix for sockmod's incorrect handling of disconnect indication"
  718.  
  719. Otherwise, configure like any SVR4 system.
  720.  
  721.  
  722. ------------------------------
  723.  
  724. Subject:  Linux tips
  725.  
  726. Get inn-1.4-linux-0.1.tar from ftp myriad.pc.cc.cmu.edu /pub/linux It
  727. contains instructions for installing INN on a Linux system and a
  728. working config.data file.  (from ghio@myriad.pc.cc.cmu.edu)
  729.  
  730. If you are too stupid to follow the directions in
  731. inn-1.4-linux-0.1.tar, here are some of the problems you might have:
  732.  
  733. | nntpsend.log says the following.
  734.  
  735. | nntpsend: [214:222] innxmit -a -t300 -T1800
  736. | travelers.mail.cornell.edu ...
  737. | Ignoring line "cornell/test/13 805 ..."
  738. | sh: PPID read-only variable
  739.  
  740. Tomasz Surmacz <tsurmacz@ict.pwr.wroc.pl> writes:
  741.  
  742. If you are using INN under Linux or have your /bin/sh a symlink to
  743. /bin/bash the above problem appears (in nntpsend precisely speaking,
  744. not innxmit)
  745.  
  746. The problem is that bash already defines the PPID variable and
  747. nntpsend is trying to use it too.  To fix this:
  748.  
  749. 1. comment out line PPID = $$
  750. 2. change all occurences of PPID to say PARENTPID
  751.  
  752. I have also noticed that changing first line of nntpsend from
  753. '#!/bin/sh' to "!/bin/bash" helps in such occasions.
  754.  
  755.  
  756. ------------------------------
  757.  
  758. Subject:  A/UX 3.0 (Macintosh) tips
  759.  
  760. Tip #1: Use the INN malloc.
  761.  
  762. Tip #2:  If you are running INN 1.4 on a Mac running A/UX 3.0.1, Every
  763. so often, (generally when someone fires up a reader), INN goes beserk.
  764. Syslog says:
  765.  
  766.     innd: ME cant select Bad file number
  767.  
  768. This message repeats about 20 times per second.  It freezes up my
  769. computer and I need to reboot.
  770.  
  771. That's a kernel bug. You do have to reboot.
  772.  
  773. If you compiled inn with gcc, don't. My experience was that somehow, if
  774. INN was compiled with GCC the kernel bug is triggered, but that doesn't
  775. happen with cc.
  776.  
  777.  
  778. ------------------------------
  779.  
  780. Subject:  Alpha OSF tips:
  781.  
  782. To compile INN for the DEC Alpha, follow the instructions in the INN
  783. patch archive on ftp.pop.psu.edu:/pub/src/news/inn-patches
  784.  
  785. A config.data file for OSF1.3a is in:
  786.     ftp://pirates.cs.swt.edu/pub/usenet/inn/inn1.4/config
  787. A config.data file for OSF3.0 is in:
  788.     ftp://pirates.cs.swt.edu/pub/usenet/inn/inn1.4sec/config
  789.  
  790. In rc.news you need to start $INNWATCH using the following:
  791.  
  792. ${DOINNWATCH} && {
  793.     echo "${INNWATCH} &" | su ${NEWSUSER} -c 'at now + 2 min' > /dev/null
  794. }
  795.  
  796. The '&' in the command line prevents innwatch from taking up an at-job
  797. slot.  SysV-style crons have a per-category and overall limit on the 
  798. number of jobs executing simultaneously.
  799.  
  800.  
  801. ------------------------------
  802.  
  803. Subject:  SGI IRIX 5.x tips
  804.  
  805. Some people have reported that IRIX 5.1 isn't very reliable and that it
  806. is worth it to run 5.2.   5.3 is even better, but it is still not
  807. perfect.  (In other words: IT WORKS FINE AS Install.ms DESCRIBES!)
  808.  
  809.  
  810. ------------------------------
  811.  
  812. Subject:  Pyramid and system's where only root can have "cron" jobs.
  813.  
  814. Your cron jobs may not work if you use:
  815.  
  816.     su news -c /usr/lib/news/bin/news.daily delayrm expireover
  817.  
  818. Instead, you must put the entire command in quotes.  Like this:
  819.  
  820.     su news -c "/usr/lib/news/bin/news.daily delayrm expireover"
  821.  
  822. Look for "Pyramid" later in this FAQ for the interesting details.
  823.  
  824. ------------------------------
  825.  
  826. Subject:  System V based Unixes (SVR4, Solaris 2.x, SCO ODT 3.0, AIX, A/UX, DELL, ...)
  827.  
  828. NOTE:  Solaris 2.x is based on SVR4.0.  These tips are useful in a
  829. limited way.  Read this section for general advice, but follow the
  830. "Solaris 2.x" section details.
  831.  
  832. If you are running any non-BSD (i.e. System V based) Unix you MUST have
  833. the following option set:
  834.  
  835. ##  How should close-on-exec be done?  Pick IOCTL or FCNTL.
  836. #### =()<CLX_STYLE              @<CLX_STYLE>@>()=
  837. CLX_STYLE               FCNTL
  838.  
  839. This includes SVR4, Solaris 2.x, A/UX and SCO ODT 3.0.  (SVR4 means
  840. systems based on System V Release 4 from USL.  Please check your manual
  841. to see if your operating system is based on SVR4.)
  842.  
  843. This CLX_STYLE setting is clearly stated in the Install.ms file and
  844. repeated here since so many people post to news.software.nntp after
  845. ignoring the warnings.
  846.  
  847. If CLX_STYLE isn't set to FCNTL, you'll get tons of overchan processes
  848. hanging around.
  849.  
  850. With SCO ODT 3.0 and MOST systems, innd will link and run if you use
  851. IOCTL but eventually will stop answering incoming calls.
  852.  
  853. Don't be fooled.  Just because it compiles doesn't mean it's going to
  854. work.
  855.  
  856. If you start innd on an AT&T SysV Rel 4.0 machine and get syslog
  857. messages like:
  858.     localhost:15 cant setsockopt(SNDBUF) Protocol error
  859.     localhost:15 cant setsockopt(RCVBUF) Protocol error
  860. then you should FIRST try to change HAVE_UNIX_DOMAIN to "DONT" in
  861. config.data.  If that doesn't fix the problem, you should add
  862. "-USO_SNDBUF" to your DEFS parameter in config.data.  Or, you can
  863. comment out the "setsockopt()" calls.  This is also mentioned
  864. in the Install.ms file (which means if you needed to read it
  865. here, you weren't paying attention when you read Install.ms)
  866.  
  867. Many SVR4 for i486 binaries (sendmail, mh, vmail, innd, rnews are now
  868. on ftp.germany.eu.net in pub/comp/i486/svr4/*.SVR4.tgz But remember
  869. that some of the above need site specific changes, so their usefulness
  870. may be limited.
  871.  
  872. If you get syslog messages that say, "ME cant accept RCreader"
  873. please refer to Part 2 of this FAQ.
  874.  
  875. DELL ships their Unix with /dev/log chmod'ed to 0644 which means nobody
  876. can syslog anything.  Pretty stupid, eh?  INN uses syslog extensively.
  877. If you find that you don't get any syslog messages check to see if you
  878. need to: "chmod 0666 /dev/log".
  879.  
  880. Nobody knows by SVR4 boxes often give error messages like,
  881. "innd:  accept: SIOCGPGRP failed errno 22".  There's some sort of
  882. obscure bug with the SVR4 accept() call that can lead to these
  883. messages, if the executable is linked a certain way. I suspect that the
  884. same symbol -- for two totally separate variables or routines -- is
  885. defined in two different libraries, so if you link in certain ways you
  886. get the "wrong" thing. This error drove me crazy when I first built
  887. sendmail V8 on our NCR 3000 box. But I re-linked it a different way and
  888. I haven't seen the error since. Good riddance. I suggest you play
  889. around with your link libraries and/or order of linkage.
  890.  
  891. kevin@cfc.com (Kevin Darcy) says he never gets theses messages since
  892. he started using (in config.data):
  893. LIBS                    -lsocket -lnsl -lelf
  894.  
  895.  
  896. If your SVR4 system still doesn't run correctly, check the
  897. Solaris 2.x suggestions.
  898.  
  899.  
  900. ------------------------------
  901.  
  902. Subject:  Solaris 2.x special needs
  903.  
  904. SOLARIS 2.4:  Install the Recommended cluster patch from Sun.
  905. The Recommended cluster patch is:
  906. ftp://sunsolve1.sun.com/pub/patches/2.4_Recommended.tar.Z
  907. The README is:
  908. ftp://sunsolve1.sun.com/pub/2.4_Recommended.README
  909. Then follow the directions in
  910. ftp://ftp.pop.psu.edu/pub/src/news/inn/patches/solaris-2.4.patch.
  911. The patch needs to be applied BY HAND, it is not in the correct format
  912. to work with Larry Wall's patch program.  Also, do *not* link with the
  913. /usr/ucblib stuff, and HAVE_WAITPID should be set to "DO".
  914.  
  915. SOLARIS 2.3:  If you install the "Recommended cluster patch" I *think*
  916. you will only need to pay attention to Fix #5 listed below.  It would
  917. be helpful if people sent an update about this.
  918. The Recommended cluster patch is:
  919. ftp://sunsolve1.sun.com/pub/patches/2.3_Recommended.tar.Z
  920. The README is:
  921. ftp://sunsolve1.sun.com/pub/2.3_Recommended.README
  922.  
  923. (note: If you trust other people to compile programs for you
  924. [especially ones that run as root] you can get inn1.4sec pre-compiled
  925. w/gcc at ccnews.ke.sanet.sk:/pub/solaris/inn1.4sec-src+bin.tar.gz)
  926.  
  927. INN works with Solaris 2.[0123].  It's not easy, but it will work.
  928. The problem is that depending on which Solaris patches you have
  929. installed, you have to install various INN patches.  There are too
  930. many combinations of Sun patches and INN patches to be able to say
  931. what is required and what isn't.  (See the "SOLARIS 2.3" tip above
  932. for one tried and tested configuration).
  933.  
  934. Here is the general guide: 
  935.  
  936. Step 1:  Use the info for config.data for Solaris 2.x that is included
  937.     Install.ms.
  938. Step 2:  As you go, if you get any of the problems listed below, try
  939.     the fix listed.
  940.  
  941. Eventually you will be up and running with only the fixes you need.  If
  942. you try to install ALL the fixes at once, things will definately not
  943. work.
  944.  
  945. COMPILER TIPS:  Use gcc or /opt/SUNWspro/bin/cc.  Do *not* use
  946. /usr/ucb/cc.  In fact, remove /usr/ucb from your path when you compile.
  947.  
  948.  
  949. ---------- Solaris Fix #1
  950.  
  951. Under Solaris 2.[012] (SunOS 5.0, 5.1, 5.2) you must add the following
  952. at the beginning of each file using gethostbyname():
  953.  
  954. #define gethostbyname __switch_gethostbyname
  955.  
  956. Under Solaris 2.3 gethostbyname() might work without changes depending
  957. on your configuration.  We haven't figured out when they work and when
  958. they don't.  If you run into problems, try to change "gethostbyname()"
  959. to "solaris_gethostbyname()" and then use the gethostbyname() listed in
  960. the Solaris Porting FAQ.  This isn't a perfect solution, because you
  961. now need a different binary for Solaris 2.[012] systems.
  962.  
  963. It would be great if someone were to submit a solaris_gethostbyname()
  964. function who's binary works under all Solaris revs and gives all the
  965. semantics of BSD gethostbyname().  In particular, one that doesn't have
  966. the problems discussed in sun bugid #1126573 or #1135988.  It would be
  967. amazing if this was submitted by one of the many Sun employees that
  968. flame the INN FAQ maintainer in comp.sys.sun.admin everytime he bitches
  969. about how much he hates Solaris 2.x. :-)
  970.  
  971. ---------- Solaris Fix #2
  972.  
  973. Under all Solaris 2.* versions there is a problem with innwatch.ctl.
  974. It expects to use "df -i" to find out how many inodes are free on your
  975. disk.  /usr/{sbin,5bin,bin}/df doesn't support the "-i" option, it has
  976. a "-e" option that outputs the info you want, but in a different
  977. format.  You should use "/usr/ucb/df -i" instead, since this version of
  978. df includes the "-i" option.
  979.  
  980. /usr/ucb/df is part of the BSD Compatibility stuff.  If you loaded
  981. Solaris 2.x without that, you can replace innwatch.ctl's disk checks
  982. with these lines:
  983.  
  984. ##  If load is OK, check space (and inodes) on various filesystems
  985. ##  =()<!!! /usr/bin/df -k . | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_SPOOLSPACE>@ ! throttle ! No space (spool)>()=
  986. !!! /usr/bin/df -k . | awk 'NR == 2 { print $4 }' ! lt ! 8000 ! throttle ! No space (spool)
  987. ##  =()<!!! /usr/bin/df -k @<_PATH_BATCHDIR>@ | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_BATCHSPACE>@ ! throttle ! No space (newsq)>()=
  988. !!! /usr/bin/df -k /news2/spool/out.going | awk 'NR == 2 { print $4 }' ! lt ! 800 ! throttle ! No space (newsq)
  989. ##  =()<!!! /usr/bin/df -k @<_PATH_NEWSLIB>@ | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_LIBSPACE>@ ! throttle ! No space (newslib)>()=
  990. !!! /usr/bin/df -k /news2/privcontrol | awk 'NR == 2 { print $4 }' ! lt ! 40000 ! throttle ! No space (newslib)
  991. ##  =()<!!! /usr/bin/df -k @<_PATH_OVERVIEWDIR>@ | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_OVERVIEWSPACE>@ ! throttle ! No space (overview)>()=
  992. !!! /usr/bin/df -k /news3/overview | awk 'NR == 2 { print $4 }' ! lt ! 6000 ! throttle ! No space (overview)
  993. ##  =()<!!! /usr/bin/df -e . | awk 'NR == 2 { print $2 }' ! lt ! @<INNWATCH_SPOOLNODES>@ ! throttle ! No space (spool inodes)>()=
  994. !!! /usr/bin/df -e . | awk 'NR == 2 { print $2 }' ! lt ! 200 ! throttle ! No space (spool inodes)
  995.  
  996. ---------- Solaris fix #3
  997.  
  998. Don't run the "lint" step if you use Solaris.  In fact, nobody needs to
  999. execute this step except Rich, when he's writing new code.  If you have
  1000. a Solaris machine without "lint", just make "lint" a symlink to
  1001. "/bin/echo".
  1002.  
  1003. ---------- Solaris fix #4
  1004.  
  1005. People running Solaris 2.3 have built INN with HAVE_UNIX_DOMAIN set to
  1006. TRUE and everything seems to be ok.  I guess Sun has fixed enough
  1007. bugs in 2.3 to make it usable.  I recommend the latest "recommended
  1008. patches" if you run any version of Solaris 2.x.  To install all of
  1009. the "Recommended Patches" in one command, refer to:
  1010. ftp://sunsolve1.sun.com/pub/patches/patches.html
  1011.  
  1012. ---------- Solaris fix #5
  1013.  
  1014. If "inews" outputs "Bad Message-ID" when posting Under Solaris 2.x
  1015. (where x = 0, 1, 2 or 3) you need to change the file "getfqdn.c".  Find
  1016. the lines that read:
  1017.  
  1018.     if (strchr(hp->h_name, '.') == NULL) {
  1019.         /* Try to force DNS lookup if NIS/whatever gets in the way. */
  1020.         (void)strncpy(temp, buff, sizeof buff);
  1021.         (void)strcat(temp, ".");
  1022.         hp = gethostbyname(temp);
  1023.     }
  1024.  
  1025. and delete them.
  1026.  
  1027. ---------- Solaris fix #6
  1028.  
  1029. If posting gets you "441 Can't generate Message-ID, Error 0" and you
  1030. are running with DNS, then the problem is with Solaris 2.3's
  1031. gethostbyname.  dns.  If you ask for a host with "hostname." it returns
  1032. "hostname." instead "hostname.yourdomain.com" as expected by nn.  The
  1033. workaround is to define "domain" in your inn.conf and apply the
  1034. following patch to getfqdn.c:
  1035.  
  1036. *** getfqdn.c.~1~       Sun Sep  4 09:02:37 1994
  1037. --- getfqdn.c   Sun Sep  4 09:53:11 1994
  1038. ***************
  1039. *** 35,45 ****
  1040.       if ((hp = gethostbyname(buff)) == NULL)
  1041.         return NULL;
  1042. !     if (strchr(hp->h_name, '.') == NULL) {
  1043. !       /* Try to force DNS lookup if NIS/whatever gets in the way. */
  1044. !       (void)strncpy(temp, buff, sizeof buff);
  1045. !       (void)strcat(temp, ".");
  1046. !       hp = gethostbyname(temp);
  1047. !     }
  1048. !     if (hp != NULL && strchr(hp->h_name, '.') != NULL) {
  1049.         if (strlen(hp->h_name) < sizeof buff - 1)
  1050.             return strcpy(buff, hp->h_name);
  1051. --- 35,39 ----
  1052.       if ((hp = gethostbyname(buff)) == NULL)
  1053.         return NULL;
  1054. !     if (strchr(hp->h_name, '.') != NULL) {
  1055.         if (strlen(hp->h_name) < sizeof buff - 1)
  1056.             return strcpy(buff, hp->h_name);
  1057.  
  1058.  
  1059. ------------------------------
  1060.  
  1061. Subject:  Slackware Tips
  1062.  
  1063. Slackware comes with The Reference Implementation of NNTP as well as
  1064. INN.  However, if you select "INN" it doesn't remove the nntp entry in
  1065. your /etc/inetd.conf.  If the Slackware people aren't sure why INN
  1066. requires you to remove that line from /etc/inetd.conf, they should get
  1067. out of the business.  (oh, they can complain to tal@plts.org... he wrote
  1068. this paragraph).
  1069.  
  1070.  
  1071. ------------------------------
  1072.  
  1073. Subject:  3Com Router users
  1074.  
  1075. If you observe strange behavior, like nnrpd locking and not sending
  1076. some articles to the clients, and if you find no clues about other
  1077. potential problems, then check your IP layer: some users have observed
  1078. bugs in the IP implementation of 3Com routers caused TCP
  1079. sessions lock outs.  You have very probably also NFS problems then.
  1080. Upgrading to the latest PROMs fixes this totally bizarre problem.
  1081.  
  1082.  
  1083. ------------------------------
  1084.  
  1085. Subject:  NOV problems on a Pyramid
  1086.  
  1087. Q:  I just turned on the overview stuff and I don't think news.daily is
  1088. properly expiring the .overview files.  I'm using a Pyramid.
  1089.  
  1090. A:  Do you need quotes in your crontab entry?  Look at your news.daily
  1091. report -- expire using "expireover delayrm" should take a few minutes.
  1092. If it takes longer than, say, 10-20 minutes, then the keywords aren't
  1093. being seen by news.daily so perhaps the commandline quoting is wrong.
  1094.  
  1095. i.e. you had:
  1096.  
  1097.     su news -c /usr/lib/news/bin/news.daily delayrm expireover
  1098.  
  1099. You should have:
  1100.  
  1101.     su news -c "/usr/lib/news/bin/news.daily delayrm expireover"
  1102.  
  1103. Without quoting, the options are thrown away and only the "news.daily"
  1104. is executed.
  1105.  
  1106. ------------------------------
  1107.  
  1108. Subject:  Warnings to people that must set HAVE_UNIX_DOMAIN to DONT
  1109.  
  1110. Disclaimer:  First of all, if you have to set HAVE_UNIX_DOMAIN to DONT,
  1111. YOU HAVE TO SET IT to DONT.  It's not a choice you can make, it's a
  1112. description of the operating system that you've purchased.  If you've
  1113. wrongly set this variable to DO your system isn't going to work *at*
  1114. *all*.
  1115.  
  1116. When you use POST (the NNTP command), you are talking to nnrpd.  nnrpd
  1117. cleans up your headers, adds the missing headers that it is allowed to
  1118. add, checks whatever it checks, and then submits the finalized version
  1119. to innd.  How does it talk to innd?
  1120.  
  1121. If you have HAVE_UNIX_DOMAIN set to DO, nnrpd opens a Unix domain
  1122. socket and sends the text.  At this point it is talking to innd
  1123. somewhat like ctlinnd does.  innd can trust that the post isn't
  1124. forged since it is coming from a program trustworthy enough to
  1125. get to the socket (which isn't much).
  1126.  
  1127. If you have HAVE_UNIX_DOMAIN set to DONT, it has no choice but to open
  1128. a socket to port 119, issue the "IHAVE" command, and send the text that
  1129. way (just like a remote newsreader).  This means that innd (not another
  1130. nnrpd) has to be at the other end of the pipe.  If it opens the
  1131. connection and sees a "nnrpd" you're hosed and you get "441 480
  1132. Transfer permission denied".  (Better the "441 480" message than an
  1133. infinate loop of nnrpd's connecting to nnrpd's!)  To get innd to not
  1134. hand off the connection to a nnrpd process, you must have the host's
  1135. name in the hosts.nntp file.  (don't forget to do "ctlinnd reload
  1136. hosts.nntp")
  1137.  
  1138. If you have your host's name in the hosts.nntp file, then any
  1139. newsreader running on your nntphost must be "INN-aware" (i.e. that they
  1140. issue the "mode reader" command) or they must read news via the file
  1141. system instead of NNTP.
  1142.  
  1143. If you have NNTP-based newsreaders that can't send the "mode reader"
  1144. command, you can try including "server: localhost" in your inn.conf
  1145. file, but then you must have a different inn.conf file for the other
  1146. machines.  If you can't do that, you have no other options but to
  1147. recompile your newsreaders.
  1148.  
  1149. Remember, if you change your inn.conf file, you must shutdown and
  1150. restart innd.  There is no "ctlinnd reload inn.conf" command.
  1151.  
  1152. -- 
  1153.  George Will, Rush Limbaugh, John Sununu, Pat Buchanan, James Kilpatrick, Mona
  1154.   Charen, G. Gordon Liddy, Robert Novak, Bay Buchanan, Pat Robertson, Joseph
  1155.    Sobran, Paul Harvey, Phyllis Schafly, Maureen Reagan, and John McLaughlin
  1156.           always bemoan the need for more conservative media voices.
  1157. Posted-By: post_faq 2.10
  1158. Archive-name: usenet/software/inn-faq/part2
  1159. Last Changed: $Id: FAQ-inn.2,v 1.70 1995/02/26 09:14:01 tal Exp $
  1160.  
  1161.                   Part 2 of 4
  1162.  
  1163. INN FAQ Part 1/4: General Information
  1164. INN FAQ Part 2/4: Debugging Guide & Tutorial
  1165.                      Reasons why INN isn't starting
  1166.                      The debugging tutorial
  1167.                      Other error messages and what they mean
  1168. INN FAQ Part 3/4: Operational and Misc. Questions
  1169. INN FAQ Part 4/4: Appendix A: Norman's install guide
  1170.  
  1171.  
  1172. ------------------------------
  1173.  
  1174. Subject:  Table Of Contents for Part 2/4
  1175.  
  1176. =====================================================================
  1177.      TABLE OF CONTENTS FOR PART 2/4:  Debugging Guide & Tutorial
  1178. =====================================================================
  1179.  
  1180. REASONS WHY INN ISN'T STARTING:
  1181.     What runs as what?
  1182.     Why does innd just exit right away with no message?
  1183.     syslog message: ME internal no to group
  1184.     syslog message: ME internal no control and/or junk group
  1185.     syslog message: Can't setup communication (bind failure)
  1186.     syslog message: ME bad_newsfeeds no feeding sites
  1187.     syslog message: ME cant GetConfigValue
  1188.     syslog message: ME cant accept RCreader
  1189.     syslog message: ME cant ioctl(TIOCNOTTY) Invalid argument
  1190. THE DEBUGGING TUTORIAL:
  1191.     Should I read the Install.ms file in its entirety
  1192.         before reading this document?
  1193.     Terminology used in the rest of this document.
  1194.     How does it all fit together?
  1195.     What should I monitor as I debug INN problems?
  1196.     My innd won't start!
  1197.     Connecting to a TCP/IP server.
  1198.     Make sure that "feeders" can connect.
  1199.     Make sure that "readers" can connect.
  1200.     Make sure that clients can post.
  1201.     "client" doesn't have the software needed to post.
  1202.     Introduction to the "newsfeeds" file
  1203.     The ME line in the newsfeeds file.
  1204.     How does the "ME" line interact with the other lines?
  1205.     Cookbook example of an outgoing NNTP feed.
  1206.     Cookbook example of an outgoing UUCP feed.
  1207.     Cookbook example of an outgoing UUCP-over-TCP feed.
  1208.     Testing an outgoing feed (your "newsfeeds" configuration).
  1209.     Other cron jobs.
  1210.     Cookbook example of setting up NOV ("overchan").
  1211.     How do I use nntplink with INN?
  1212.     How do I use newsgate with INN?
  1213. OTHER ERROR MESSAGES AND WHAT THEY MEAN:
  1214.     ld.so: Undefined symbol: _dbzwritethrough
  1215.     log file fills with "<site> <article-id> 436 No space"
  1216.     Why does my innd often die with the message "Can't sync history..."
  1217.     syslog message: ME cant sendto CCreader bytes 4 No such file
  1218.         or directory.
  1219.     syslog: cant symlink
  1220.     syslog: cant read Connection reset by peer
  1221.     inews says "bad message-id"
  1222.     Why do all these "readclose" messages show up in my syslog?
  1223.     "File exists writing symlinking article file -- throttling"
  1224.     "cant fopen <newsgroup>/.thread No such file or directory"
  1225.     news.daily reports: "Expire had problems removing articles"
  1226.     syslog: nnrpd[22560]: ? cant gethostbyaddr 198.3.24.3 Permission denied
  1227.     syslog: ME cant nonblock 15 Operation not supported.
  1228.     innd: ME cant update_active control
  1229.     syslog message: innxmit[1234]: max connect failed Error 0
  1230.     Can't open "/usr/local/news/shlock955", Permission denied
  1231.     INND: PID file exists -- unclean shutdown!
  1232.     cant fopen /usr/lib/news/distributions
  1233.     cant fopen /usr/lib/news/distrib.pats
  1234.     ME cant exec in /usr/lib/news/capture No such file or directory
  1235.  
  1236.  
  1237. =====================================================================
  1238.                    REASONS WHY INN ISN'T STARTING
  1239. =====================================================================
  1240.  
  1241. ------------------------------
  1242.  
  1243. Subject:  What runs as what?
  1244.  
  1245. 1.  The first "make install" MUST RUN AS ROOT.
  1246. 2.  Other "make install" runs as "root", but sometimes "news" will work.
  1247. 3.  "rc.news" runs as "root".
  1248. 4.  "news.daily" runs as "news".
  1249. 5.  ALL CRON JOBS (sendbatch, sendnntp, send-ihave, etc.) run as "news".
  1250.  
  1251. HOW TO REMEMBER THIS:
  1252.     EVERYTHING RUNS AS "NEWS" EXCEPT:
  1253.         "rc.news" runs as root, since it runs from rc.local (which
  1254.             runs as root) and since it runs things that start out
  1255.             as root but become "news" after doing special things.
  1256.         "make install" runs as "root" because it has to do "chown" to
  1257.           set up files securely.
  1258.  
  1259. ------------------------------
  1260.  
  1261. Subject:  Why does innd just exit right away with no message?
  1262.  
  1263. First, fix your syslog: innd always logs a message before it exits.  (The
  1264. INN distribution includes a version of the current UCB syslog, along with
  1265. instructions on how to install it.  Ultrix systems might want to look at
  1266. the syslog that is available on gatekeeper.dec.com)
  1267.  
  1268. Second, the most common cause of this is that you do not have a history
  1269. file (or no history database).  You will see a message like this:
  1270.  
  1271.     ME cant dbminit /usr/local/news/history No such file or directory
  1272.  
  1273. This means that you do not have a history database (or no history.dir
  1274. and history.pag files).  If you are just installing INN for your first
  1275. time, you might want to run the BUILD script in your INN source tree.
  1276. Or, you can read about makehistory in doc/news-recovery.8; if you do
  1277. the latter, make sure to rename the database files (pay attention to
  1278. the two "mv" commands).
  1279.  
  1280.  
  1281. ------------------------------
  1282.  
  1283. Subject:  syslog message: inndstart: inndstart cant bind Address already in use
  1284.  
  1285. >I try to start INN but got this error in my syslog file:
  1286. >       inndstart: inndstart cant bind Address already in use
  1287. >Can anyone give me a hint on how to fix it ?
  1288.  
  1289. Something else is already using port 119.  Comment out the line in
  1290. /etc/inetd.conf for port 119 and "kill -HUP" the inetd program (which
  1291. makes it re-read the configuration file).
  1292.  
  1293. Remember, there are two ways for programs to take control over an
  1294. incoming port.  (1) the program runs and grabs the port (which has to
  1295. be done as root) and then handles all incoming connections, or (2) the
  1296. program is listed in /etc/inetd.conf and inetd grabs the port and hands
  1297. off any incoming connections to the program specified in
  1298. /etc/inetd.conf (i.e. one process gets started for every incoming
  1299. connection.)
  1300.  
  1301. If you do (1) and (2) at the same time, the inetd will grab the port
  1302. and then anyone else that grabs the port will get an "Address already
  1303. in use" error.
  1304.  
  1305. INN's "innd" program is type (1).  C News+NNTP uses something that is
  1306. type (2).
  1307.  
  1308. Most people that get this error ran C News+NNTP a long time ago and
  1309. forgot to remove the line from their /etc/inetd.conf file.
  1310.  
  1311.  
  1312. ------------------------------
  1313.  
  1314. Subject:  syslog message: ME internal no to group
  1315.  
  1316. If you set MERGE_TO_GROUPS to "DO", you have to have a "to" group
  1317. listed in your "active" file or you will get the above syslog message
  1318. and innd will not start.  You can edit the active file directly if innd
  1319. isn't running.
  1320.  
  1321.  
  1322. ------------------------------
  1323.  
  1324. Subject:  syslog message: ME internal no control and/or junk group
  1325.  
  1326. You must have a newsgroup named "control" and a newsgroup named
  1327. "junk" for innd to start.  Since innd isn't running, you can edit
  1328. the active file directly
  1329.  
  1330. Add these lines:
  1331.  
  1332. control 0000000000 0000000000 y
  1333. junk 0000000000 0000000000 y
  1334.  
  1335. --tal
  1336.  
  1337. ------------------------------
  1338.  
  1339. Subject:  syslog message: Can't setup communication (bind failure)
  1340.  
  1341. The message "Can't setup communication (bind failure) Permission denied"
  1342. means that the permissions on your _PATH_NEWSCONTROL directory
  1343. are wrong.  You might want to delete the directory and "make install"
  1344. to create it again.
  1345.  
  1346.  
  1347. ------------------------------
  1348.  
  1349. Subject:  syslog message: ME bad_newsfeeds no feeding sites
  1350.  
  1351. (Rich Salz replies:) The syslog message is telling you that you are not
  1352. feeding news to any sites.  You have to have at least one feed.  (You
  1353. may consider this to be a bug, it's just that I'm too lazy to make
  1354. everything work right if you don't have any newsfeeds.)
  1355.  
  1356. Until you go into production and start feeding sites, add a line like this:
  1357.         dummy-feed:!*::
  1358.  
  1359.  
  1360. ------------------------------
  1361.  
  1362. Subject:  syslog message: ME cant GetConfigValue
  1363.  
  1364. Jan 12 17:38:06 galaxy innd: ME cant GetConfigValue pathhost Error 0
  1365.                                                     ^^^^^^^^
  1366.  
  1367. This means you don't have "pathhost:" in your inn.conf.
  1368.  
  1369. GetConfigValue is the routine that gets data out of the inn.conf file.
  1370. If you get the above error, it means you don't have a particular value
  1371. in your inn.conf.  Run "inncheck -v" usually will tell you what you
  1372. need to do.
  1373.  
  1374.  
  1375. ------------------------------
  1376.  
  1377. Subject:  syslog message: ME cant accept RCreader
  1378.  
  1379. Situation:  INN 1.4sec on ICS2.0 or Interactive Unix System V Release
  1380. 3.2 or one of the many SVR4 Unix's.  You get syslog messages like:
  1381.  
  1382. Jul 14 12:07:44 isdn.IFNS.DE innd: ME cant accept RCreader No more
  1383. Jul 14 12:07:44 isdn.IFNS.DE innd: ME cant accept RCreader Protocol error
  1384. May  7 12:05:07 salyko.cube.net innd: ME cant accept RCreader Protocol error
  1385.  
  1386. when you connect to innd from a remote machine, but not from the
  1387. local host.
  1388.  
  1389. Problem:  Well, that's just another bug in the SVR4 networking code.
  1390.  
  1391. munonye@ifns.de (Chris Munonye) reports that this patch fixed the
  1392. problem:
  1393.  
  1394. *** RCS/rc.c     Sun Jul 18 15:02:50 1993
  1395. --- rc.c Sun Jul 18 15:04:35 1993
  1396. ***************
  1397. *** 173,178 ****
  1398. --- 173,181 ----
  1399.  
  1400.       /* Get the connection. */
  1401.       size = sizeof remote;
  1402. +     if (SetNonBlocking(cp->fd, FALSE) < 0)
  1403. +        syslog(L_ERROR, "%s cant un-nonblock %d in RCreader(errno %d) %m
  1404. : syslog entry:
  1405. +               LogName, fd, errno);
  1406.       if ((fd = accept(cp->fd, (struct sockaddr *)&remote, &size)) < 0) {
  1407.          syslog(L_ERROR, "%s cant accept RCreader %m", LogName);tocol err
  1408.          return;
  1409.  
  1410.  
  1411. ------------------------------
  1412.  
  1413. Subject:  syslog message: ME cant ioctl(TIOCNOTTY) Invalid argument
  1414.  
  1415. Most likely a botched config.data - TIOCNOTTY is a BSDism and
  1416. probably doesn't work on SVR4-based system.  (If you aren't sure
  1417. if your Unix is SVR4-based, get out of the netnews business).
  1418.  
  1419.  
  1420. =====================================================================
  1421.                        THE DEBUGGING TUTORIAL
  1422.                 (or, What do I do after Install.ms?)
  1423. =====================================================================
  1424.  
  1425.  
  1426. ------------------------------
  1427.  
  1428. Subject:  Should I read the Install.ms file in its entirety before reading this document?
  1429.  
  1430. YES!  Install.ms tells you how to compile and install the software.
  1431. This document walks you through debugging the *configuration* of the
  1432. software once it is installed.
  1433.  
  1434. This document takes you from where install.ms leaves off, gives you a
  1435. quick overview of how all the pieces fit together, and then takes you
  1436. through specific debugging tasks.
  1437.  
  1438. Debugging INN problems is often difficult because one needs to be an
  1439. experienced netnews person to do it well.  You can only get experience
  1440. by having a properly running system.  This is a catch-22.  This
  1441. tutorial attempts to take you through the basics.  The rest you'll
  1442. figure out.
  1443.  
  1444. Newsgroups you should know exist:
  1445. news.software.nntp  -- INN questions go here.
  1446. news.software.b     -- Discussions about any of the many software
  1447.     packages that support the "B news" format (i.e. INN, C news,
  1448.     ANU-NEWS, etc.)
  1449.  
  1450. This document also takes you through the process of verifying that your
  1451. system is properly configured.  When you are done, you should:
  1452.  
  1453. 1.  be sure that when feeders connect they are treated as feeders.
  1454.  
  1455. 2.  be sure that when clients connect they are treated as clients.
  1456.  
  1457. 3.  be sure that posting works.
  1458.  
  1459. 4.  be sure that your out-bound feeds are properly configured.
  1460.  
  1461.  
  1462. ------------------------------
  1463.  
  1464. Subject:  Terminology used in the rest of this document.
  1465.  
  1466. We will pretend that your machine is named "nntphost" or
  1467. "nntphost.do.main" and that there is a client named "client" or
  1468. "client.do.main".
  1469.  
  1470. Some machines connect to you to try to feed you new articles.  We'll
  1471. call these machines "feeders".  Some machines try to connect to you to
  1472. read and/or post articles.  We'll call these machines "readers".
  1473.  
  1474.  
  1475. ------------------------------
  1476.  
  1477. Subject:  How does it all fit together?
  1478.  
  1479. Here is a fantastic overview of the workings of INN.
  1480.  
  1481. From: Ken Hornstein <kenh@leps5.phys.psu.edu>
  1482.  
  1483. I discovered that the biggest problem I had with INN was understanding how
  1484. everything fits together (since I had no experience with B or C news).
  1485. Here's a (hopefully) simple description of how everything fits
  1486. together:
  1487.  
  1488. After running rc.news (as "root"), you should have the "innd" daemon
  1489. running ("ps" will show the process to be owned by "news").  This is
  1490. the Master Daemon.  It handles incoming connections, stores the
  1491. articles on your disk, but does _not_ send any articles out itself.  It
  1492. directs other programs to do that.  Exactly where articles are sent and
  1493. how they are sent is determined by the "newsfeeds" file.  Setting up
  1494. your newsfeeds file will be the hardest part of configuring INN.  Here
  1495. are some example entries from my newsfeeds file:
  1496.  
  1497. ra/ra.nrl.navy.mil\
  1498.         :*,!psu.*/!psu\
  1499.         :Tf,Wnm:
  1500.  
  1501. Looks complicated?  It isn't.  Here's what it means:
  1502.  
  1503. "ra" is the name of the feed.  "/ra.nrl.navy.mil" is an alias for ra.
  1504. This is important because INN uses the "Path" header to insure the
  1505. articles are not sent to sites where they have already been.  Thus, any
  1506. article that has "ra" or "ra.nrl.navy.mil" in the Path header will NOT
  1507. be sent to this site.  We know that no other site inserts "ra.nrl.navy.mil"
  1508. because it is a FQDN (Fully Qualified Domain Name).  We know that no
  1509. other site inserts "ra" because it is registered in the UUCP Maps.
  1510. (Ok, "ra" isn't registered so I'm just taking a small gamble.)
  1511.  
  1512. The second line tells what articles will be sent out to this site.
  1513. "*,!psu.*" means that articles for (all newsgroups minus those that
  1514. match "psu.*") will be sent to ra.  The details of the pattern matching
  1515. is found in the wildmat(3) man page.  The "/!psu" means that articles
  1516. with a "Distribution" header of psu will also not be sent to ra.
  1517.  
  1518. The last field specifies exactly what _kind_ of feeds.  "Tf" means this
  1519. is a file feed.  Unless you have unusual requirements, all of your
  1520. feeds will be file feeds.  "Wnm" means that the relative path name and
  1521. the Message-ID of the article will be written to this file.  The "n"
  1522. means "relative path name", the "m" means "Message-ID of the article".
  1523. The newsfeeds(5) man page explains all the letters you can use with
  1524. "W".  By default, the output file is called the same name as your feed
  1525. file, and is in your out.going directory.  So on my system, every
  1526. article destined to ra will have its filename and Message-ID written to
  1527. the file "/var/spool/news/out.going/ra".
  1528.  
  1529. So how do the articles actually GET to ra?  You run a program that
  1530. reads the feeds file and transmits the article.  Two such programs are
  1531. included with INN -- "send-nntp" and "nntpsend".  My personal
  1532. preference is for nntpsend.  If you are going to use nntpsend, you will
  1533. need to add a similar line to your nntpsend.ctl file:
  1534.  
  1535. ra:ra.nrl.navy.mil
  1536.  
  1537. This tells nntpsend that articles in the feed file "ra" should be sent
  1538. to the site "ra.nrl.navy.mil".  I run nntpsend out of cron every 10
  1539. minutes with this line:
  1540.  
  1541. (in "news"'s cron)
  1542. 0,10,20,30,40,50 * * * * /usr/local/news/bin/nntpsend
  1543.  
  1544. Or, if you use an old-style cron (like Ultrix does):
  1545. 0,10,20,30,40,50 * * * * /bin/su news -c '/usr/local/news/bin/nntpsend'
  1546.  
  1547. UUCP feeds work similarly and are described in a different section.
  1548.  
  1549. As each article comes in (note that hosts feeding you _must_ be listed
  1550. in the hosts.nntp file), innd will examine it and distribute to your
  1551. listed feeds based on the above-described selection criteria.
  1552.  
  1553. Another important thing to do is to make sure your articles get
  1554. expired.  This is done from the "news.daily" script.  The "expire.ctl"
  1555. file describes how long you want each article to last.  Here are some
  1556. sample lines from my expire.ctl:
  1557.  
  1558. /remember/:14
  1559.  
  1560. This line tells expire to keep history entries for articles at least 14
  1561. days.
  1562.  
  1563. *:A:1:7:21
  1564.  
  1565. This is the default line.  This says that by default, an article is
  1566. kept a minimum of one day, the default expiration time is 7 days (this
  1567. applies if there is no "Expires" header), and the very maximum that the
  1568. article is kept is 21 days.
  1569.  
  1570. psu.*:A:1:14:28
  1571.  
  1572. This line applies to groups only in Penn State.  By default, those
  1573. articles will last 14 days, 28 days at the most.
  1574.  
  1575. Note that lines in expire.ctl should have the most general entries
  1576. first, with the most specific entries last.
  1577.  
  1578. Lastly, where do newsreaders fit in?  When a newsreader connects to the
  1579. innd process, it sees that this is not a feeder (the hosts.nntp file
  1580. lists only sitest that feed YOU) so it forks a nnrpd process and hands
  1581. the connection to it.  This way innd can concentrate on newsfeeds.
  1582. Some newsreaders don't open a connection, but instead read the articles
  1583. out of "/usr/spool/news" (and gets meta data from "/usr/lib/news").
  1584. INN doesn't need to do anything about those readers except to make
  1585. sure the right data is where they expect it.
  1586.  
  1587.  
  1588. ------------------------------
  1589.  
  1590. Subject:  What should I monitor as I debug INN problems?
  1591.  
  1592. 1.  run "tail -f /var/adm/messages" to see if any syslog messages are
  1593. being generated.
  1594.  
  1595. 2.  run "tail -f /var/log/news/news.err" to see if any fatal errors
  1596. happen. 
  1597.  
  1598. 3.  Check for incoming email constantly (especially when trying to post
  1599. from "nn").
  1600.  
  1601.  
  1602. ------------------------------
  1603.  
  1604. Subject:  My innd won't start!
  1605.  
  1606. Keep a "tail -f /var/adm/messages" running.  INN reports most errors
  1607. via syslog.  The syslog messages usually explain what is wrong.
  1608. Elsewhere in this document are details about some of the less obvious
  1609. syslog messages.
  1610.  
  1611. Chances are, INN is starting, finding a misconfigured "ME" line in the
  1612. newsfeeds file, and exiting.  You might want to read the section on
  1613. configuring your "newsfeeds" file first.
  1614.  
  1615. Rich Salz says a common reason is that you ran makehistory but didn't
  1616. rename the DBZ files.  "makehistory" generates history.n.dir
  1617. and history.n.pag.  They must be renamed:
  1618.     mv history.n.dir history.dir
  1619.     mv history.n.pag history.pag
  1620. (In the future, you could run "makehistory -f history", which is a
  1621. little more risky... so read the man page before you use it.  Until
  1622. 1.5, "makehistory"'s man page was part of "news-recovery".)
  1623.  
  1624. Izar Tarandach <izar@cs.huji.ac.il> suggests that another common
  1625. mistake is that innd wasn't being started by the correct uid.  innd
  1626. (and therefore rc.news) must be started from "root" (not "news").  It
  1627. immediately turns itself in user "news" once certain tasks are
  1628. completed.
  1629.  
  1630. If you use a suid root inndstart, you can run it as any user.
  1631.  
  1632.  
  1633. ------------------------------
  1634.  
  1635. Subject:  Connecting to a TCP/IP server.
  1636.  
  1637. You know that "telnet"'ing to a machine lets you log into it.  You are
  1638. actually connecting on the "telnet" port (port 23).  Many TCP/IP
  1639. services allow you to "telnet" into their port and talk directly to
  1640. them.  Try "telnet nntphost 21".  This means log into port #21 (the
  1641. "ftp" port) instead of the usual remote login port.
  1642.  
  1643. Once you are in, you'll get no prompt.  Type "help" and press RETURN.
  1644. You should get a list of commands.  If you know what the commands are,
  1645. you can talk to this server.  Type "quit" and press RETURN to get out.
  1646.  
  1647. After every command you should get some kind of status message.  Each
  1648. line will begin with a number.  Each message has a unique number.
  1649. Errors are defined as anything that starts with a number >= 400.
  1650. Positive (non-error) messages are <400.
  1651.  
  1652. SMTP (mail) and NNTP (netnews) work the same way.  Telnet into their
  1653. port and issue commands and data.  "quit" always gets you out.
  1654.  
  1655. We'll use this to debug INN configurations by "telnet"'ing into the
  1656. innd server and seeing the raw error messages it gives us.
  1657.  
  1658. Try "telnet"'ing into the NNTP port (#119) of a working NNTP server to
  1659. see what it's like.
  1660.  
  1661.  
  1662. ------------------------------
  1663.  
  1664. Subject:  Make sure that "feeders" can connect.
  1665.  
  1666. "feeders" are listed in hosts.nntp.  "readers" are listed in
  1667. nnrp.access.  This section deals with "feeders" and hosts.nntp.
  1668.  
  1669. When a machine connects to the NNTP port of nntphost, it connects to
  1670. the innd process.  innd knows the internet address of the machine that
  1671. is making this connection, and sees if it matches the internet
  1672. addresses many of the machines listed in the hosts.nntp file.
  1673.  
  1674. If the machine is not listed in hosts.nntp, it is assumed that this
  1675. machine is not a "feeder" and forks off a nnrpd to handle this
  1676. connection as a "reader".  If you didn't know that, you didn't read
  1677. enough of the INN installation documentation.  Go back and read it
  1678. now.
  1679.  
  1680. Read the man page hosts.nntp to get a complete understanding of what's
  1681. going on.  nnrpd uses its own authentication scheme, which is
  1682. described in the next section.
  1683.  
  1684. Since I know you didn't read that man page, I'll give you one more
  1685. chance to read it now.
  1686.  
  1687. Let's configure hosts.nntp.  Just enter the names of all the machines
  1688. that feed you:
  1689.  
  1690. feeder1.do.main:
  1691. feeder2.do.main:
  1692.  
  1693. I don't use passwords yet.  If you do, add them after the ":".
  1694.  
  1695. Now let's test to see if the feeder can connect properly.
  1696.  
  1697. Log into to the feeder and "telnet nntphost 119".
  1698.  
  1699. If you can't log into a feeder, configure your own machine as a feeder
  1700. (i.e. feeder to itself) for testing purposes.  Once you can see that
  1701. INN is treating that machine as a feeder you can replace the machine's
  1702. name with the name of a real feed.
  1703.  
  1704. If you are given an error message and booted out, check the error
  1705. message to see what's wrong.  Maybe the machine is running maintenance
  1706. at the time and you have to try again later.  Maybe the machine doesn't
  1707. recognize you at all and you have to edit "hosts.nntp" (and don't
  1708. forget the "ctlinnd reload hosts.nntp" command!).
  1709.  
  1710. Run "inncheck" to tell you if you have made any obvious mistakes.
  1711.  
  1712. If your "history" file or other files have the wrong ownership or
  1713. protections INN will mention the offending file in the error message.
  1714. Another common mistake is that people try to use wildcards in
  1715. hosts.nntp (which is not supported).  Remember, there are very few
  1716. machines that you consider to be "feeders", so you don't want to use a
  1717. wildcard.
  1718.  
  1719. To test a "feeder":  If "feeder1" can send an "ihave" command and get a
  1720. "335" as a response, you know that "nntphost" is permitting "feeder1"
  1721. to transfer news as a "feeder".  "ihave" requires an operand.  I
  1722. usually type "ihave <1@test>" and press RETURN.  "<1@test>" is a
  1723. Message-ID that I know doesn't exist.  If I get "500 What?" I know that
  1724. innd assumed that I'm a "reader" (so I have to edit my "hosts.nntp"
  1725. file and add this client).  If I get "335" and then a blank prompt,
  1726. then INN is expecting to be fed an article.  I usually just "^]"
  1727. (control-]) and "quit" out; I know that it was willing to accept the
  1728. article.  If I get some other error message, it usually gives me enough
  1729. information to debug the problem.
  1730.  
  1731.  
  1732. ------------------------------
  1733.  
  1734. Subject:  Make sure that "readers" can connect.
  1735.  
  1736. As I wrote before, if a connection comes from a machine that isn't
  1737. listed in the hosts.nntp file, it is assumed to be a "reader".  A
  1738. "feeder" can also issue the "mode reader" command to become a
  1739. "reader".  If you have "telnet"'ed in as a "feeder", try issuing this
  1740. command.
  1741.  
  1742. Note: If a site is going to feed *and* read, you'll have to link
  1743. readers with innd's client library. The reason for this is that the
  1744. clients must tell innd that they want to read using the "mode reader"
  1745. command.  The library does that automagically.  It is rare that you
  1746. have a machine that is a reader and a feeder (since people will want to
  1747. read on their local machine, not yours.)  News readers are now
  1748. being packaged as "INN ready" so this will be less and less of a
  1749. problem.
  1750.  
  1751. Once the connection has been handed off to nnrpd, nnrpd checks to make
  1752. sure you are authorized.  It does that by reading the nnrp.access
  1753. file.
  1754.  
  1755. There is a problem with what you enter in that file.  Namely, I might
  1756. call the client machine "client", but that doesn't matter.  What
  1757. matters is what "nntphost" thinks "client" is called.  Maybe "nntphost"
  1758. thinks its name is "client.do.main" or even "137.202.177.3".  It
  1759. doesn't matter what *you* call "client", permissions in the nnrp.access
  1760. file have to be specified based on what "nntphost" calls "client".
  1761. Technically, nnrpd uses gethostbyaddr() to reverse-lookup the name.
  1762. gethostbyaddr() uses DNS or, if you are on a brain-dead Sun running
  1763. Sun's NIS/DNS hack, it uses NIS, or DNS, or whatever the hell Sun was
  1764. thinking when they created that cruft.
  1765.  
  1766. To find out what "nntphost" thinks your machine is called, do the
  1767. following:  Telnet from "client" to "nntphost" and execute the "finger"
  1768. command (just "finger" alone on the command line).  The last column is
  1769. what "nntphost" thinks your machine is called.
  1770.  
  1771. If you don't have an account on both machines things are more
  1772. difficult, consult your NIS or DNS expert to tell you what the answer
  1773. would be.
  1774.  
  1775. There is one exception to this technique.  If you are using SunOS and
  1776. braindead NIS you get just the machine name (like "milk") instead of
  1777. the FQDN (like "milk.warren.mentorg.com") then you must tack on a
  1778. period then the domain of the machine.
  1779.  
  1780. So, with this knowledge (what your nntphost think's client's name is)
  1781. and a copy of the man page, edit nnrp.access and add "nntphost"'s name
  1782. for "client" to the file.  Unlike hosts.nntp, nnrp.access can have
  1783. wildcards (for example, "*.sjc.mentorg.com").  You'll want to include
  1784. wildcards for all the domains that should be allowed to read/post.
  1785.  
  1786. Here are some decent examples from my nnrp.access file:
  1787.  
  1788. -------------------------------------- Tom's nnrp.access file START
  1789. ## Default is no access, no way to authentication, and no groups.
  1790. *:: -no- : -no- :!*
  1791. *.mentorg.com:Read:::*
  1792. *.mentor.com:Read:::*
  1793. *.warren.mentorg.com:Read Post:::*
  1794. -------------------------------------- Tom's nnrp.access file END
  1795.  
  1796. The second field of "nnrp.access" is case sensitive.  "read post" does
  1797. not mean the same as "Read Post".  If you know this already it's
  1798. because you read the man page.
  1799.  
  1800. Note:  nnrpd will append the domain to a name that is not a FQDN.
  1801. There is no need to try to find a wildcard that will match non-FQDN
  1802. names (i.e. machines in your local NIS cluster).  Previously this FAQ
  1803. had reported that "*[^.]*" would match these short names but that was
  1804. wrong (the wildcard matches everything, oi!).  nnrpd turns non-FQDN's
  1805. into FQDNs.
  1806.  
  1807. After you change "nnrp.access" you don't have do "ctlinnd reload" since
  1808. the file is read by each nnrpd as they start up.
  1809.  
  1810. Now "nntphost" should be letting "client" read.  Let's test this out:
  1811.  
  1812. Log into to the reader and "telnet nntphost 119".
  1813.  
  1814. To test a "reader":  Give the "mode reader" command and see how it
  1815. it goes.  If it doesn't give an error, then nnrp.access is letting you
  1816. through.  To read an article (or just get the header) type "head
  1817. <2@test>" and press RETURN.  Again, "<2@test>" is a message-id that I
  1818. know doesn't exist.  If you are allowed to read at all, it will tell
  1819. you that it can't find that article.  You should try the command with an
  1820. message-id that you know exists and make sure you see the article's
  1821. header.
  1822.  
  1823. If reading works you can skip to the next section.  The rest of this
  1824. section helps you debug reading problems.
  1825.  
  1826. If "mode reader" gives an error (and rudely disconnects you) then you
  1827. have a typo in nnrp.access OR you didn't issue the "ctlinnd reload"
  1828. command correctly (or at all) OR nntphost thinks that "client" is
  1829. called yet something else OR innd can't exec nnrpd for one reason or
  1830. another -- see the syslog output or the innd.err log file.  Check all
  1831. of those things then go to the beginning of this section and start
  1832. over.
  1833.  
  1834. Note: Some telnet implementations are Real Stupid and disconnect you
  1835. before showing the error message.
  1836.  
  1837. You can also run nnrpd by hand if you have
  1838.     stdin:Read Post:::*
  1839. in your nnrp.access file.  Just run nnrpd and type interactively.  This
  1840. is useful for making sure it's compiled right.
  1841.  
  1842.  
  1843. ------------------------------
  1844.  
  1845. Subject:  Make sure that clients can post.
  1846.  
  1847. The "inews" command (usually in /usr/local/bin) takes a post from a
  1848. user, adds any missing headers, appends the file
  1849. "~/.signature" (see below), and possibly replaces any headers that
  1850. are obviously forged.  "inews" will also reject a message if the
  1851. message is seriously botched.  "inews -h" expects a post on stdin
  1852. beginning with headers, then a blank line, then the body.  "inews -h
  1853. -D" doesn't post the message, but outputs what it would have posted.
  1854. The minimum headers one can feed is "Newsgroups:" (which is plural) and
  1855. "Subject:" (which is singular).
  1856.  
  1857. The "~/.signature" handling has some specific rules:  INN's inews exits
  1858. with an error if ~/.signature is (1) more than 4 lines long, (2)
  1859. exists, but is not readable, or (3) is longer than 4k chars.  inews
  1860. exits with an error (rather than silently reading only the first 4
  1861. lines) to avoid a flurry of posts asking, "Why did my .signature get cut off?"
  1862.  
  1863. By the way, a header looks like "Header-Name: data".  That is, after
  1864. the header name there is exactly one colon then exactly one space.  The
  1865. space is a space, not a tab.  Another picky detail is that list of
  1866. newsgroups on the "Newsgroups:" line is a comma separated list, with no
  1867. spaces.  There are no spaces before the colon.  If there is nothing
  1868. after the colon or if there is only whitespace after the colon then
  1869. that header will be removed by "inews".  Sites that don't remove such
  1870. "empty" headers have broken software.  Get it?  Got it?  Good.
  1871.  
  1872. Here's the test message I constantly use:
  1873. ------------------------ cut here 8<
  1874. inews -h -D
  1875. Newsgroups: foo.test
  1876. Subject: test of inn posting
  1877.  
  1878. this is a test
  1879. ------------------------ cut here 8<
  1880.  
  1881. Exciting huh?
  1882.  
  1883. You might also use the 'feedone' program in the frontends directory.
  1884. Do "cd $inn/frontends ; make feedone" to get it built.  To run it, do
  1885.  
  1886.         feedone -t -r /tmp/inews.input
  1887.  
  1888. This will (-t) trace all I/O with the server and (-r) use a random
  1889. message-id each time.  If you want to test posting from a newsreading
  1890. host (i.e., one that connects to nnrpd and uses the POST command) use
  1891. the -p flag.
  1892.  
  1893. If inews was able to get to the /usr/lib/news/inn.conf file (for
  1894. defaults) you should get a nice post on your screen.  If you don't,
  1895. here are my suggestions:
  1896.  
  1897. 1 -- You have an old inews from C news or B news laying around
  1898. 2 -- inews will give you an error message saying what's wrong.
  1899.  
  1900. You might want to look around the usual places to make sure that there
  1901. are no old versions of "relaynews" or "inews".  People trying to use
  1902. the "inews" from C news will get a message about "can't open
  1903. redirection" or similar.  Make sure they are running the programs
  1904. included with INN.  There is something called "mini-inews" which should
  1905. just take a post and send it to the nntp server.  Delete that and
  1906. replace it with INN's inews.  INN's inews is mini-inews and regular
  1907. inews, it is the ying and then yang of inewses.  It is the one true
  1908. inews.  It is the one inews to end all inewses and all others are false
  1909. idols.
  1910.  
  1911. Note:  False idol worshipper and heathen David Myers <dem@meaddata.com>
  1912. reports that mini-inews works fine.  He stays with mini-inews...
  1913. "because INN inews needs to access not only inn.conf, but moderators,
  1914. too.  Installing and maintaining these files in a ~1000 client,
  1915. multiple administrative domain setup like ours is too much of a pain.
  1916. Most (all?) of the work done by INN inews is done by in.nnrpd during
  1917. posting, anyway."
  1918.  
  1919. Kenji Rikitake <kenji@rcac.tdi.co.jp> reports:
  1920. "Keep in mind that INN inews refers to many environment variables.
  1921. Beware of _inherited_ variables especially when you do su to maintain
  1922. your news server.
  1923. I got trapped and wasted a day with NNTPSERVER.  I tried to post to a
  1924. local newsgroup, and inews kept refusing it and sending me 'no such
  1925. newsgroups...' error message.  I finally found out that inews was
  1926. looking up a wrong server, _implicitly_ specified by
  1927. 'setenv NNTPSERVER ...' in my .login script.  It took a day to find
  1928. such a subtle misconfiguration, after a whole recompilation of entire
  1929. INN kit, active and history rebuilding, and all possible configuration
  1930. checking.  *sigh*"
  1931.  
  1932. "inews -h" sometimes reports: 'Warning, can't connect to server'
  1933. What server is it trying to connect to?  Remember, inews uses
  1934. the NNTPSERVER environmental variable and (if that isn't set) looks
  1935. in /usr/lib/news/inn.conf.
  1936.  
  1937. INN's inews sometimes prints the error: "Can't get list of newsgroups,
  1938. No such file or directory.".  inews called CAlistactive() to get a
  1939. local copy of the active file.  If it can't reach the active file you
  1940. get this error.  Look at your PATH_TEMPACTIVE and see if it makes
  1941. sense; i.e., if it is a valid /tmp directory.
  1942.  
  1943. "inews -h" sometimes reports:
  1944.     Can't send article to the server:
  1945.     441 480 Transfer permission denied
  1946. This means that you set HAVE_UNIX_DOMAIN to DONT and you don't have
  1947. your news server in its own hosts.nntp file.  (nnrpd gets a POST,
  1948. connects to innd over a TCP socket and sends an IHAVE.) (thanks to
  1949. Chris Jackson <cjj@sun.com> for pointing this out).  Add your news
  1950. server's name and "localhost" to hosts.nntp and do "ctlinnd reload
  1951. hosts.nntp".  (for the reason why, read "Warnings to people that must
  1952. set HAVE_UNIX_DOMAIN to DONT")
  1953.  
  1954. "inews -h" sometimes reports:
  1955.     Warning Text unavailable -- Article will be spooled.  
  1956. This means that inews could not connect to the server, but errno
  1957. had nothing useful, and no reply came from the server.  "It just
  1958. didn't work."
  1959.  
  1960. If it still doesn't work, look through your syslog to see the name
  1961. of the host that innd got, and why it handed off to nnrpd.  Perhaps
  1962. there is a DNS/NIS/hosts-file mismatch.  (suggested by Rich Salz)
  1963.  
  1964. Other problems are usually the result of not being able to find the
  1965. "inn.conf" file (copy it to the client or make it available via NFS) or
  1966. you are using Sun's brain-dead NIS/DNS stuff which doesn't do reverse
  1967. name lookups well.  If inews tells you that it can't generate a
  1968. Message-ID, this is because it can't figure out your domain (which is
  1969. used in making the message-id string).  Force it to know your domain by
  1970. adding a "domain:" line in "inn.conf".  Solaris 2.x users will get a
  1971. "can't generate message-id" error if they didn't follow the advice
  1972. about getfqdn.c mentioned in another part of this FAQ.
  1973.  
  1974. If you get something like:
  1975.     500 "GROUP"" not implemented; try "help".
  1976. This implies that the client host is in hosts.nntp, not nnrp.access.
  1977. However, if you need to have this machine in in the hosts.nntp file
  1978. (i.e. it is a feeder or you have an operating system that requires you
  1979. to set HAVE_UNIX_DOMAIN to DONT) then your newsreader must send a "mode
  1980. reader" to the server when it connects.
  1981.  
  1982. Once you get "inews -h -D" working, do the same test without the "-D" option
  1983. and let it actually post the message.  If it can't post, it will tell
  1984. you why.  If the answer isn't clear enough, "telnet nntphost 119", give
  1985. the "mode reader" command, then the "post" command.  Enter lines of
  1986. text like you would to "inews -h" and then type "." on a line by itself
  1987. (and press RETURN).
  1988.  
  1989. If posting via "telnet nntphost 119" DOES work and posting via "inews -h"
  1990. DOES NOT work, you know that (1) "inews" is compiled wrong, or more likely,
  1991. (2) you aren't using INN's inews.  Either way, if this is happening
  1992. you know you have narrowed your problems down to the inews program.
  1993.  
  1994. By the way, posting to misc.test is pretty useless considering that the
  1995. entire world doesn't need to see your message.  Post to a local
  1996. newsgroup or even a state-wide newsgroup like "nj.test" (assuming you
  1997. are in New Jersey).  There are lots of people that reply to every test
  1998. message they see, so expect to get tons of stupid email.  (though, if
  1999. you don't get any email consider yourself lucky).  Also, there is no
  2000. newsgroup called "news.test" so don't post there.  Many try, try fail.
  2001. By the way, if you are one of those people that reply to every test
  2002. message they see, get a real hobby.  The convention is that replies
  2003. are not sent to test messages with the word "IGNORE" in the Subject:.
  2004.  
  2005. Do *NOT* post your test message to a non-test newsgroup.  You will get
  2006. many angry replies from all over the world.  ...including the FAQ maintainer.
  2007.  
  2008. Look at the posted message in the news spool (if you post a message to
  2009. nj.test, "cd /var/spool/news/nj/test" and cat the highest numbered file
  2010. you see).  If your site name is listed multiple times in the "Path:"
  2011. header, put your server's name on the "pathhost:" line of "inn.conf"
  2012. and recompile INN with "INEWS_PATH" set to "DONT".  (I don't know why
  2013. Rich likes that as the default!)
  2014.  
  2015. REMEMBER:  inn.conf is read into innd only once.  After it is changed,
  2016. the innd daemon must be shutdown and restarted.  (use "ctlinnd shutdown x"
  2017. and then run rc.news as root).
  2018.  
  2019. If "inews -h" posts a message, smile because most of the battle is over.
  2020.  
  2021.  
  2022. ------------------------------
  2023.  
  2024. Subject:  "client" doesn't have the software needed to post.
  2025.  
  2026. If the client doesn't have "inews" at all, copy it from the server (if
  2027. they are compatible machines) or check the INN installation manual to
  2028. find out how to compile just the client programs for a machine.  There
  2029. is a special gimick included with INN to compile inews for the various
  2030. other OS's and versions of Unix without having to compile the entire
  2031. INN package.
  2032.  
  2033. Since nnpost, Pnews, postnews, and all other news posting software
  2034. shouldn't do anything but ask for header information, let you add a
  2035. body, and then pipe the whole thing to "inews -h", you can be pretty
  2036. certain that if "inews -h" works, your news posting programs will
  2037. work.  Think again!  Post from each of them and make sure they all get
  2038. posted.  You might find that they access a copy of "inews" that was
  2039. part of C news, mini-inews, or heavens knows what.
  2040.  
  2041. I highly recommend that people use "find" or "gnufind" to seek out and
  2042. replace all old versions of "inews" with symbolic links to the one
  2043. "official".
  2044.  
  2045. Something like:
  2046.  
  2047. gnufind / /usr /usr/local /usr/lib -xdev -follow -name inews\* -print
  2048.  
  2049. Then, for every file found, do the following:
  2050.  
  2051. mv inews inews.cnews
  2052. ln -s /usr/local/bin/inews inews
  2053.  
  2054. Now you only have to update /usr/local/bin/inews, rather than
  2055. chasing may copies.
  2056.  
  2057. "nn" and "nnpost" create a file called "~/.nn/params" right before you
  2058. post with tons of useful information.  While posting you can shell out
  2059. of the editor and view the file.  The file is deleted after the message
  2060. is posted.  I had to view this file while shelled out of my editor to
  2061. find which "inews" was being used by "nnpost".
  2062.  
  2063. It's also a good idea to check your mail now and then while you are
  2064. doing this.  Some newsreaders (like "nn" notify you of a posting
  2065. problem via mail.
  2066.  
  2067. On non-INN systems, "inews" returns pretty quickly.  Actually they fork
  2068. a process to do the actual posting in the background.  When those
  2069. "inews" return, you don't know if the post was successful or not.
  2070. These "inews"'s have a "-W" option which turns off this forking feature
  2071. (i.e. Wait for the post to complete).
  2072.  
  2073. INN's "inews" never forks because the wait is never that long.  When
  2074. "inews" returns you know if the post was successful or not.  INN's
  2075. "inews" accepts the "-W" option for compatibility.
  2076.  
  2077. This may seem obvious, but when posting a test message, consider
  2078. including the machine you are posting from and the program you are
  2079. using.  Even though you may check to see if the message got posted
  2080. after every test, this will help you later when you go back to see what
  2081. you have done.
  2082.  
  2083.  
  2084. ------------------------------
  2085.  
  2086. Subject:  Introduction to the "newsfeeds" file
  2087.  
  2088. Outgoing news is controlled by the "newsfeeds" file.  The INN 1.2 man
  2089. page for this file is a bit complex.  The man page in 1.3 (and beyond)
  2090. gives better examples.  Here's a "cookbook" of examples that should
  2091. cover most of your needs.  Debugging tips are also included.
  2092.  
  2093. Always remember that newsfeeds uses "wildmat" matches, not the
  2094. semi-regular expressions that C news uses.  This means that if you want
  2095. to get comp.foo and the subgroups under it (comp.foo.bar, comp.foo.baz,
  2096. etc.) you have to use a statement like:
  2097.  
  2098. comp.foo,comp.foo.*
  2099.  
  2100. OR
  2101.  
  2102. comp.foo*
  2103.  
  2104. BUT NOT
  2105.  
  2106. comp.foo.*
  2107.  
  2108. However, "comp.foo*" will match "comp.foobar", as well as
  2109. "comp.foo.bang".
  2110.  
  2111.  
  2112. ------------------------------
  2113.  
  2114. Subject:  The ME line in the newsfeeds file.
  2115.  
  2116. The "ME" entry is a bit confusing.  Be careful when you
  2117. read the man page.
  2118.  
  2119. Here is the "ME" line that I use in my "newsfeeds" file.  I find
  2120. it works quite well, but you might want to remove the distributions
  2121. that you don't need (i.e. New Jersey).  Since my site has clients
  2122. reading from all over the world I try to have every distribution I
  2123. can find.  However, I hear of a new distribution almost daily so this
  2124. list is always changing.
  2125.  
  2126. ME:!*/\
  2127. news,gnu,comp,biz,alt,rec,misc,sci,soc,talk,inet,world,worldwide,all,\
  2128. aus,su,uk,york,eunet,na,can,qc,tor,us,usa,mn,oh,chi,ca,ba,tx,pnw,il,ne,\
  2129. ny,nyc,phl,bl,nj,warren::
  2130.  
  2131. If you want to blindly accept all distributions, try this:
  2132.  
  2133. ME:!*::
  2134.  
  2135.  
  2136. ------------------------------
  2137.  
  2138. Subject:  How does the "ME" line interact with the other lines?
  2139.  
  2140. > I'm still a little confused about the ME line's second field.
  2141.  
  2142. The man page as of INN 1.3 is much more clear on this.  Basically, the
  2143. second field of the "ME" line specifies the default for the rest of the
  2144. feeds.  Otherwise, it isn't used.  The "active" file declares which
  2145. newsgroups you accept and don't accept.
  2146.  
  2147. Here are some examples:
  2148.  
  2149. ME:!*:::
  2150. foo:!junk:...        --send no newsgroups
  2151.  
  2152. ME:*:::
  2153. foo:!junk:...        --send all newsgroups except junk
  2154.  
  2155. ME:!*:::
  2156. foo:*,!junk:...      --send all newsgroups except junk
  2157.  
  2158. By the way, generally you do not want to send "junk" or "control*" to
  2159. your neighbors.
  2160.  
  2161.  
  2162. ------------------------------
  2163.  
  2164. Subject:  Cookbook example of an outgoing NNTP feed:
  2165.  
  2166. This example involves a machine named oddball.mentorg.com, that has an
  2167. alias of oddball.sjc.mentorg.com, which should receive all posts (but
  2168. control & junk should never be passed on) and not certain
  2169. distributions.  Add the following line to newsfeeds:
  2170.  
  2171. oddball.mentorg.com/oddball.sjc.mentorg.com:*,!control*,!junk/!local,!warren:Tf,Wnm:
  2172.  
  2173. Have the user "news" run the following via cron:
  2174.  
  2175. 3,23,43 * * * *  /usr/lib/news/bin/nntpsend >/dev/null 2>&1
  2176.  
  2177. (this only needs to be added once.  nntpsend refers to a file
  2178. called nntpsend.ctl to find out what to do).
  2179.  
  2180. Add the following to nntpsend.ctl:
  2181.  
  2182. oddball.mentorg.com:oddball.mentorg.com::
  2183.  
  2184. Done!
  2185.  
  2186.  
  2187. ------------------------------
  2188.  
  2189. Subject:  Cookbook example of an outgoing UUCP feed:
  2190.  
  2191. Example:  A site named "plts" that can not get the "clari" newsgroups
  2192. or distribution "warren".
  2193.  
  2194. Add the following to the newsfeeds file:
  2195.  
  2196. plts:*,!clari.*,!junk*,!control*/!warren:Tf,Wnb:
  2197.  
  2198. Add the following to the cron tab (as user "news"):
  2199.  
  2200. 0 0-5,16-23 * * 1-5       /usr/lib/news/bin/sendbatch -c plts >/dev/null 2>&1
  2201.  
  2202. NOTE: I know that "plts" is unique and won't conflict with
  2203. some other site named "plts" because it is registered
  2204. in the UUCP Maps (see comp.mail.maps).
  2205.  
  2206. If your feeder is sending you netnews via UUCP (which is usually the
  2207. case, since it isn't useful to just feed articles and not receive any)
  2208. you must configure your UUCP to allow the remote system to execute
  2209. rnews.  Your UUCP documentation should tell you how to set up a UUCP
  2210. connection and how to change the allowed commands.  That means that
  2211. uucico will execute /bin/rnews on every incoming batch.  INN comes with
  2212. a perfectly servicable "rnews" program that can handle all the standard
  2213. batched and compressed news formats.  The INN rnews will uncompress and
  2214. unbatch as necessary and then pass each article to innd for
  2215. processing.  (Thanks to Jerry Aguirre <jerry@roma.ATC.Olivetti.Com> for
  2216. this paragraph)
  2217.  
  2218.  
  2219. ------------------------------
  2220.  
  2221. Subject:  Cookbook example of an outgoing UUCP-over-TCP feed:
  2222.  
  2223. jerry@strobe.ATC.Olivetti.Com (Jerry Aguirre) writes:
  2224.  
  2225. People ask about this like it was something exotic requiring special
  2226. setup.  Kind of like: "I know how to use a wheel barrow and I know how
  2227. to shovel sand but how do I shovel sand in a wheel barrow?"
  2228.  
  2229. Step 1:  Set up a UUCP/TCP connection between you and the destination
  2230. site.  How?  Read your UUCP documentation.  If your machines's UUCP,
  2231. and the desitination machine's UUCP both supports UUCP/TCP then it will
  2232. be documented.  If not then get a better version of UUCP.  For example,
  2233. Taylor UUCP.
  2234.  
  2235. Every OS sets up UUCP differently:  YOU HAVE TO READ THE DOCUMENTATION.
  2236.  
  2237. The point is to get the UUCP/TCP link working before even thinking
  2238. about sending news over it.  This is true of any news feed over UUCP;
  2239. even dialup.  Try using "uucp" to copy some scratch file to the other
  2240. end.  When you have that working then you are ready for the next step.
  2241.  
  2242. The only "gotcha" here that I can think of is that the destination host
  2243. may not be accepting UUCP/TCP connections.  Before wasting your time
  2244. trying to debug do a "telnet destination.host.name uucp" and see what
  2245. happens.  If the connection is accepted and you see a "login" banner
  2246. then it is ready for you.  If not then ask the admin of that site to
  2247. enable UUCP/TCP.  This is typically done by uncommenting it in
  2248. /etc/inetd.conf and -HUPing inetd (on REAL versions of Unix).
  2249.  
  2250. Step 2.  Set up a standard compressed news feed to the UUCP name of the
  2251. destination site.  How?  Read your news documentation.  Setting up UUCP
  2252. feeds is a standard, documented, procedure.  In this FAQ you'll find it
  2253. in "Cookbook example of an outgoing UUCP feed".  Doing compression is
  2254. nothing special, it's part of the procedure you would be doing anyway.
  2255. It's either a flag or a slighly different command.  The news system has
  2256. NO knowledge that this is UUCP/TCP.  For all it knows this is a
  2257. standard dialup connection.  In fact is is possible to have the UUCP
  2258. connection fall back to dialup if the TCP connection fails.  The news
  2259. batching software just doesn't care.
  2260.  
  2261. The only variation here I can think of is to make the batch size bigger
  2262. than the default.  The 50K default was picked back in the days when
  2263. modems were 1200 BPS (or even 300).  It is no longer appropriate for
  2264. todays 9600 BPS or faster connections.  Using a bigger batch size cuts
  2265. down on dead time in the connection and lets compress do a better job.
  2266. I would go to at least 200K batches.
  2267.  
  2268. Now maybe it would be nice to have a "cookbook", step by step, set of
  2269. instructions on how to do this.  But UUCP seems to vary a bit between
  2270. different versions so what might work at one place would be useless at
  2271. another.  And setting up the news feed is going to be different between
  2272. the different versions of news (B, C, and INN).
  2273.  
  2274. I suggest that if people are having trouble setting up a UUCP/TCP
  2275. connection that they post their configuration to the net and ask how it
  2276. is done on their versions of Unix and UUCP.
  2277.  
  2278.  
  2279. ------------------------------
  2280.  
  2281. Subject:  Testing an outgoing feed (your "newsfeeds" configuration).
  2282.  
  2283. Here is a decent game-plan for testing your newsfeeds configuration:
  2284.  
  2285. Suppose your site is in New Jersey and you have a distribution called
  2286. "mentorg" which should be used by people that want to make sure that
  2287. their post will not leave their company (Mentor Graphics).  You should
  2288. do a test post to "nj.test" with no "Distribution:" header, and with
  2289. "Distribution: nj" and "Distribution: mentorg".  After posting, do a
  2290. "ctlinnd flush ''" and make sure that the /var/spool/news/out.going
  2291. files for all your sites did/didn't queue up those three messages as
  2292. appropriate.
  2293.  
  2294. IMPORTANT:  Remember to do a "ctlinnd reload newsfeeds x" command every
  2295. time you update your "newsfeeds" file!
  2296.  
  2297. Finally, for checking out changes to newsfeeds, I've found "ctlinnd
  2298. checkfile" handy.   "inncheck" will verify that most of your
  2299. configuration is sane.
  2300.  
  2301.  
  2302. ------------------------------
  2303.  
  2304. Subject:  Other cron jobs.
  2305.  
  2306. Once a night you should run the "news.daily" script which will
  2307. expire old articles, run the daily reports, etc.  It should run
  2308. as "news" and look something like this:
  2309.  
  2310. 40 23 * * *               /usr/lib/news/bin/news.daily delayrm
  2311.  
  2312. You should also have a line like this:
  2313. 20 * * * *                /bin/rnews -U
  2314.  
  2315. This processes any batches or posts that came in while innd was down.
  2316. (i.e. when users post and get a message like, "Server down, spooling
  2317. locally" this command picks up those files and posts them).  It can't
  2318. hurt to run this more often, but once an hour should be fine.
  2319.  
  2320.  
  2321. ------------------------------
  2322.  
  2323. Subject:  Cookbook example of setting up NOV ("overchan").
  2324.  
  2325. Now that you have your other feeds working, you might want to set up a
  2326. NOV feed so that your NOV database is built.  Newsreaders use the NOV
  2327. database to speed up their queries.
  2328.  
  2329. Christophe.Wolfhugel@grasp.insa-lyon.fr (Christophe Wolfhugel) (with
  2330. many modifications from Tom Limoncelli and further input from
  2331. davek@melita.com (Dave Kennedy) ) writes:
  2332.  
  2333. Step 1:  Upgrade to INN 1.4 or higher:  Most of the bugs in 1.3 were
  2334. related with overchan.  In fact, the only reason why many people used
  2335. 1.3 without any problems was due to the fact that they were not using
  2336. overchan (and they didn't hit on some of the bugs that appeared for
  2337. SVR4 users, all of which were fixed in 1.4)
  2338.  
  2339. Step 1.5:  Make sure _PATH_OVERVIEWDIR in config.data is NOT set to
  2340. "/var/spool/news".  There is a big performance boost to be realized by
  2341. putting the NOV files outside the /var/spool/news hierarchy.
  2342.  
  2343. To find out why, read "Subject: overchan can't keep up." in part 3 of
  2344. this FAQ.  You might want to read this anyway since it gives advice
  2345. about other things to do to get better NOV performance.
  2346.  
  2347. "/var/spool/news/over.view" is becoming the standard place to put put
  2348. your ".overview" files.  If you do not use this location, make
  2349. /var/spool/news/over.view a symbolic link to the correct place.  For
  2350. performance reasons, it is a good idea to set _PATH_OVERVIEWDIR to the
  2351. actual location of the files.  NB:  if you change config.data, you must
  2352. do a "make all" and "make install".
  2353.  
  2354. Step 2:  Make sure INN is working.  Get everything else working before
  2355. you try to get overchan to work.  You'll only confuse yourself.
  2356.  
  2357. Step 3:  Ponder if you have enough disk space.  NOV uses up an
  2358. additional 10%-20% of your news spool.  This is a good 100 Mb if you
  2359. have a full feed.  The real space savings come when you delete your
  2360. separate databases for trn, nn, and tin and use one unified database.
  2361. All serious newsreaders have NOV support.
  2362.  
  2363. Step 4:  Edit "overview.fmt" (it's in the $INN/site directory, or you can
  2364. edit it where it was installed, in /usr/lib/news ) to include
  2365. "Xref:full" as the last line.  (i.e. uncomment out the last line).
  2366.  
  2367. Step 5:  Add this entry to your "newsfeeds" file.  overchan gets it's data
  2368. from a special feed.
  2369.  
  2370. # This feeds header data to NOV:
  2371. OVERVIEW!:*:Tc,WO:/usr/local/news/bin/overchan
  2372.  
  2373. Read the "newsfeeds" man to make sure you understand what you've
  2374. just done.  Do a "ctlinnd checkfile" to make sure the newsfeeds
  2375. file has the proper syntax, then do a "ctlinnd reload newsfeeds nov"
  2376. to make it official.
  2377.  
  2378. Step 6: If you changed your $inn/site files, then:
  2379.     % cd $inn/site
  2380.     % make install
  2381.  
  2382. Step 7: Let innd know that files have been updated:
  2383.     % ctlinnd reload overview.fmt "Enabled XRef:"
  2384.     % ctlinnd reload newsfeeds "Added OVERVIEW - overchan entry"
  2385.  
  2386. Step 8: You must run "expireover -s" at least once a month.  Once a
  2387. week is even better.  Otherwise, entries for cancelled articles will
  2388. never be removed.  Here is a good crontab entry for "news" to run:
  2389. 0 5 * * 1 /usr/lib/news/bin/expireover -s
  2390.  
  2391.  
  2392. Step 9:  (optional) To create the original database:
  2393.  
  2394.     (run this as "news")
  2395.     % /usr/local/news/bin/expireover -a
  2396.  
  2397. This step will take a long time depending on the number of articles
  2398. already in your system.  But, if you skip this step, client access
  2399. will be slow for articles that came in before you started "overchan".
  2400. This is not a serious problem; you will get a lot of warnings in your
  2401. "news.daily" output until you have received at least one new article
  2402. in each newsgroup.
  2403.  
  2404. Note:  "a lot of warnings" means one for every newsgroup.  This can
  2405. make your news.daily report >6000 lines.  The lines will all look like:
  2406.  
  2407. overchan cant open clari/local/washington/.overview, No such file or directory
  2408. overchan cant open clari/local/sfbay/.overview, No such file or directory
  2409. overchan cant open uc/news/.overview, No such file or directory
  2410.  
  2411. Step 9:  Change the invocation of news.daily:
  2412.  
  2413. In the crontab file for "news", edit the "news.daily" line to be
  2414. something like:
  2415.  
  2416.    news.daily delayrm expireover
  2417.  
  2418. (the expireover is required if you use overchan)
  2419.  
  2420. Step 10:  Inform your users that you now support "NOV, the News OverView
  2421. database" and suggest that people switch to newsreaders that use
  2422. newsreaders that are compliant with the Overview format.
  2423.  
  2424. Step 11:  You are done.
  2425.  
  2426. Step 12:  In a few weeks, drop support for mthreads, nnmaster, etc.
  2427. (assuming you've upgraded to replacements that use NOV).  Delete all
  2428. those old databases that might have been maintained and enjoy the newly
  2429. gained functionality and regained disk space!
  2430.  
  2431.  
  2432. ------------------------------
  2433.  
  2434. Subject:  How do I use nntplink with INN?
  2435.  
  2436. First of all, I don't personally recommend using this program.  I feel
  2437. that it is a gimick.  However, if you decide to join the INN Instant
  2438. Party, I suggest that you first run the feed using nntpsend (included
  2439. with INN) FOR AT LEAST A WEEK.  Once you are confident that functioning
  2440. properly, consider to switching to nntplink ONLY IF:
  2441.  
  2442.     1.  You have more than 3 outgoing feeds.
  2443.     2.  You have gobs and gobs of real memory.
  2444.     3.  Your OS has a superior mmap() & disk IO system (like SunOS)
  2445.  
  2446. If you decide to switch, here's a cookbook example of an newsfeeds
  2447. entry using nntplink:
  2448.  
  2449. PLEASE make sure traditional "nntpsend"-style feeds work reliably
  2450. before you switch to nntplink.
  2451.  
  2452. netcomsv.netcom.com\
  2453.     :*,!junk/!ParcPlace\
  2454.     :Tc,Wnm,S1024:/usr/local/news/bin/nntplink -i stdin netcomsv.netcom.com
  2455.  
  2456. INN 1.2 users should have an explicit S value (i.e. S1024 or S16384).
  2457. Without it innd 1.2 can choke and lose data if the receiver is jammed.
  2458. (fixed in INN 1.3).
  2459.  
  2460. The latest version of nntplink is available from
  2461. shape.mps.ohio-state.edu:/pub/nntplink/3.2pl1.tar.gz.
  2462.  
  2463. Ian Phillipps <ian@unipalm.co.uk> notes some criteria for using
  2464. nntplink rather than nnptsend:
  2465.  
  2466. > (1) If you have more than one backbone feed, you can save a lot of
  2467. > bandwidth, without risk, if you use nntplink (less duplication of
  2468. > articles over nearly-parallel paths).
  2469.  
  2470. > (2) More important, if you have a large number of feeds, nntplink
  2471. > permits them to be fed simultaneously with the same articles.  No big
  2472. > deal, until you think of the what's going on in the pagedaemon and the
  2473. > disk cache.
  2474.  
  2475. > A "ps uaxr" rarely catches nntplink in the act ("D"), despite my having
  2476. > 17 of them last time I counted. Our biggest outgoing newsfeed delivered
  2477. > 16398 articles yesterday, using a total of 380 seconds CPU on a Sun
  2478. > IPC, and no disk time :-)
  2479.  
  2480.  
  2481. ------------------------------
  2482.  
  2483. Subject:  How do I use newsgate with INN?
  2484.  
  2485. You don't.
  2486.  
  2487. The version that is available on the net doesn't work with INN
  2488. properly.  Rich Salz is preparing a version that will work with INN or C News.
  2489. You can get a copy of it in it's current state (which works, but isn't
  2490. polished) by sending email to him at rsalz@uunet.uu.net.  You must
  2491. promise not to distribute what he sends you.
  2492.  
  2493. Installation instructions (sample /usr/lib/news/newsfeeds and
  2494. /etc/aliases entries are provided in the documentation for newsgate.
  2495.  
  2496. NB: newsgate includes mail2news and news2mail.
  2497.  
  2498.  
  2499. =====================================================================
  2500.                OTHER ERROR MESSAGES AND WHAT THEY MEAN
  2501. =====================================================================
  2502.  
  2503.  
  2504. ------------------------------
  2505.  
  2506. Subject:  ld.so: Undefined symbol: _dbzwritethrough
  2507.  
  2508. > Everything compiles correctly, but when I try to test rc.local I get:
  2509. >
  2510. > hermes# sh /usr/local/etc/rc.news
  2511. > ld.so: Undefined symbol: _dbzwritethrough
  2512. >
  2513. > What am I doing wrong?
  2514.  
  2515. This means that you are using a $INN/lib/dbz.c file that hasn't been
  2516. patched with the $INN/lib/dbz.pch patch.
  2517.  
  2518. The patching is automatic.  Running "make" should do the patch without
  2519. you even noticing.  To force the code to be re-patched (i.e. copy the
  2520. original to dbz.c and apply the patch to it), simply delete
  2521. $INN/lib/dbz.c and run the usual "make".  The Makefile does everything
  2522. for you.
  2523.  
  2524. Why might the patch fail and leave you with an unpatched dbz.c?
  2525.  
  2526. 1)  You don't have Larry Wall's (or the FSF's) "patch" program
  2527. installed.  It is available at ftp://prep.ai.mit.edu/pub/gnu/patch-2.1.tar.gz
  2528.  
  2529. 2)  Most C++ compilers based on USL's cfront come with a program called
  2530. "patch" that does something completely different than Larry Wall's (or
  2531. the FSF's) "patch" program.  If your path is configured so that this
  2532. program is found before Larry Wall's (or the FSF's) "patch" program,
  2533. you will get an unpatched dbz.c.  To fix this, delete $INN/lib/dbz.c,
  2534. change your path, and do the usual "make".  If this file is deleted the
  2535. Makefile will do everything for you.
  2536.  
  2537. See also section "5.2 The DBZ package" of the Install.ms document.
  2538.  
  2539.  
  2540. ------------------------------
  2541.  
  2542. Subject: Bad file number writing history file -- throttling
  2543.  
  2544. The system ulimit was set restrict files from growing beyond a certain
  2545. size and the history file was to large for the limit. Check the ulimit
  2546. setting for the news user.
  2547.  
  2548. The ulimit should be set to infinite.  You need to figure out how to
  2549. set this for user "news" no matter if the user logged in, is running
  2550. from cron, or was run at boot up.
  2551.  
  2552.  
  2553. ------------------------------
  2554.  
  2555. Subject: log file fills with "<site> <article-id> 436 No space"
  2556.  
  2557. innd issues this message if it cannot create a directory for a group,
  2558. _no matter what the reason for the failure_.  In most cases,
  2559. /usr/spool/news (and the mount point it is symlinked to, if any)
  2560. accidentally has permissions and ownerships that do not permit write
  2561. access by innd (which runs as "news").  After chowning them to news,
  2562. and setting the permissions to 755, everything should work fine.
  2563.  
  2564.  
  2565. ------------------------------
  2566.  
  2567. Subject:  Why does my innd often die with the message "Can't sync history,
  2568.         interrupted system call"
  2569.  
  2570. Are you running SunOS?  See "Known Problems" section of the
  2571. installation manual."  To the best of my knowledge, nobody has seen
  2572. this problem on any other system.
  2573.  
  2574.  
  2575. ------------------------------
  2576.  
  2577. Subject:  syslog message: ME cant sendto CCreader bytes 4 No such file or directory
  2578.  
  2579. (Rich Salz replies:) It usually means that some ctlinnd command timed
  2580. out and gave up before innd could get around to replying.  Always a
  2581. problem with datagrams.  :-)  Usually not a problem in real life
  2582. however.  In INN1.3, the timeout stuff is handled better so most of
  2583. these should go away.
  2584.  
  2585. You can ignore the messages, but if it bothers you, edit news.daily and
  2586. find this line:
  2587.  
  2588.     ctlinnd -s -t`wc -l <${ACTIVE}` renumber '' 2>&1
  2589. You can rewrite it to be something like this:
  2590.     COUNT=`wc -l <${ACTIVE}`
  2591.     ctlinnd -s -t`expr ${COUNT} \* 5` renumber '' 2>&1
  2592.  
  2593.  
  2594. ------------------------------
  2595.  
  2596. Subject:  syslog: cant symlink
  2597.  
  2598. This usually means an intermediate directory doesn't exist.  Usually
  2599. "ctlinnd renumber" clears this problem, but doesn't remove the cause.
  2600.  
  2601. This is usually an indication of some larger problem.  Often it means
  2602. that you have opted to use MMAP on an operating system (like Ultrix)
  2603. that doesn't have a working mmap() function.  However, this would only
  2604. be the cause if you ignored the Install.ms *and* part 1 of this FAQ.
  2605. So, obviously, this isn't the cause :-).
  2606.  
  2607.  
  2608. ------------------------------
  2609.  
  2610. Subject:  syslog: cant read Connection reset by peer
  2611.  
  2612. This means that the client vanished or deliberately aborted the nnrpd
  2613. TCP stream rather than closing it gracefully.  This is a common
  2614. situation, and it does not normally indicate a problem.
  2615.  
  2616. Most, or all, of these messages are due to clients crashing or being
  2617. aborted in the middle of a dialogue with nnrpd.  For example, a PC or
  2618. Mac user shuts off their machine at 5pm.  Or, you are seeing the
  2619. results of a bad design decision in the NewsWatcher newsreading program
  2620. for the Mac.  Future versions of NewsWatcher will be (hopefully) more
  2621. graceful about closing connections.  In other words, they should
  2622. send "QUIT\r\n" on the socket, then close it.
  2623.  
  2624.  
  2625. ------------------------------
  2626.  
  2627. Subject:  inews says "bad message-id"
  2628.  
  2629. If this is a Solaris 2.x system, you didn't delete the lines mentioned
  2630. in "SVR4, Solaris 2.x, and SCO ODT 3.0" in part 1 of this FAQ.
  2631.  
  2632.  
  2633. ------------------------------
  2634.  
  2635. Subject:  Why do all these "readclose" messages show up in my syslog?
  2636.  
  2637. Chris Schmidt <cs@germany.eu.net> says:
  2638.  
  2639. The "readclose" message indicates that a remote connection to your
  2640. server was not correctly terminated with the server-command "quit".
  2641. This can have two reasons.  First the line your feed uses to connect to
  2642. you might be instable so that the connection drops every now and then.
  2643. Solution:  either ignore theses messages or find out why the line is
  2644. unstable.  The second reason for these messages could be a
  2645. missconfigured client-program at your feed.  This means the program
  2646. (e.g nntplink) does close the connection without sending the "quit"
  2647. first.  If you configure a lower number for the exit-timeout (-e) than
  2648. the close-timeout (-C) in nntplink then exactly this will happen.
  2649. Solution:  ask your feed to fix its nntplink-setup.  Let me repeat
  2650. that:  If you are using "nntplink" your -e value must be higher than
  2651. your -C value.
  2652.  
  2653.  
  2654. ------------------------------
  2655.  
  2656. Subject:  "File exists writing symlinking article file -- throttling"
  2657.  
  2658. QUESTION: I'm running INN 1.4, and the server throttles itself, saying
  2659. "File exists writing symlinking article file -- throttling".  Why?  I
  2660. have no clue, other than to note that the message is being emitted
  2661. while innd/art.c tries to link a crossposted group.
  2662.  
  2663. ANSWER:  Innd wrote the article to comp/foo/123 and then tried to
  2664. symlink it to alt/bar/128 and found that the symlink failed with errno
  2665. == EEXIST.  This generally only happens when your active file does not
  2666. match your file/directory use.  The three most common cases of that are:
  2667.  
  2668.         Trying to use MMAP on Ultrix
  2669.         Trying to use MMAP on Linux
  2670.         Some strange interaction with tind.
  2671.  
  2672. If you are using Ultrix or Linux, turn off MMAP.  You don't have a choice in
  2673. this.  The Ultrix mmap() function does something completely different
  2674. than the Sun/BSD mmap() function.  The Linux function gives you some
  2675. of the functionality that Sun/BSD mmap() function has, but not enough.
  2676. (The Linux people expect to have it fully up to spec eventually, yeah right.)
  2677.  
  2678. At least one person has reported problems with ICL DRS6000 SVR4 Unix
  2679. when using MMAP.  Try turning off MMAP if you find problems.
  2680.  
  2681. It has been reported that tind writes to the active file and this
  2682. confuses innd (innd assumes it is the only process writing to the
  2683. active file).  If you are using tin, upgrade to the newest version of
  2684. tin, it can read the NOV database rather than the "tin" database.
  2685.  
  2686. To fix the active file (which may be corrupted), make sure nobody
  2687. else is writing to the active file, then do
  2688.         ctlinnd renumber ''
  2689. to get things synchronized again.
  2690.  
  2691. If your history file is corrupt, you should do:
  2692.         ctlinnd renumber ''
  2693.         makehistory -buv
  2694.         ctlinnd renumber ''
  2695. (Note: the "makehistory" will take hours to run.)
  2696.  
  2697. IF YOU IGNORE THIS PROBLEM LONG ENOUGH (by issuing the "go" command via
  2698. ctlinnd) you will eventually get a "innd: ME cant update_active
  2699. control" message in syslog.  The cause of this error is dealt with
  2700. elsewhere in this FAQ.
  2701.  
  2702.  
  2703. ------------------------------
  2704.  
  2705. Subject:  "cant fopen <newsgroup>/.thread No such file or directory"
  2706.  
  2707. Q: nnrpd logs "cant fopen <newsgroup>/.thread No such file or
  2708.    directory" hundreds of times a day although I installed trn-3 and
  2709.    maintain an overview database.  Why doesn't trn use overview files
  2710.    instead of mthreads data?
  2711.  
  2712. A: trn-3 tries to open .thread files (or use XTHREAD) first because
  2713.    $spooldir/db.init still exists.  Delete it.
  2714.  
  2715.  
  2716. ------------------------------
  2717.  
  2718. Subject:  news.daily reports: "Expire had problems removing articles"
  2719.  
  2720. This message tells you that you need to look in the file
  2721. ${MOST_LOGS}/expire.log to find out what really happened.
  2722.  
  2723. On the other hand...
  2724.  
  2725. Expire reports this if it goes through the entire expire process and
  2726. didn't find any articles to remove.  It is normal to get this error the
  2727. first few days you are running INN.  For example, if the smallest
  2728. integer that appears in the 4th field of your expire.ctl is a "4", then
  2729. you're sure to see this error the first four days you get an news.daily
  2730. report.
  2731.  
  2732. However, those first four days are when you are still learning the
  2733. system and it can be very shocking to see the error.  "Eeek!  Did I do
  2734. something wrong?"  Nope, news.daily is just telling you that you have a
  2735. virginal system.
  2736.  
  2737. Rich writes a more technical explanation:
  2738. > When using the "delayrm" keyword, news.daily calls expirerm to
  2739. > actually remove the articles that expire listed in its "-z" file.
  2740. > As distributed, expirerm calls fastrm with the "-e" flag.  This
  2741. > flag says "exit non-zero if nothing was removed."  In the normal
  2742. > case, it is an error if expire doesn't find anything to remove.
  2743.  
  2744. ...and a system being 4 days old isn't the normal case.  So you
  2745. get the error.  Ignore it.
  2746.  
  2747.  
  2748. ------------------------------
  2749.  
  2750. Subject:  syslog: nnrpd[22560]: ? cant gethostbyaddr 198.3.24.3 Permission denied
  2751.  
  2752. When someone connects to nnrpd, nnrpd does a reverse lookup on the
  2753. clients IP address so it can look up the hostname in nnrpd.access.  If
  2754. the client's DNS information is incorrect, you will get this error.
  2755. Make sure your SOA record is correct, as well as your in-addr.arpa
  2756. data.
  2757.  
  2758. Derek <ddl@clipper.ssb.com> adds that another cause for this problem,
  2759. at least under SunOS 4.1.x, is that nnrpd wasn't linked with the proper
  2760. resolver library (statically or dynamically).  Even when you've
  2761. replaced Sun's fershlugger libresolv.a you've still gotta remind
  2762. yourself to _use_ it properly.
  2763.  
  2764.  
  2765. ------------------------------
  2766.  
  2767. Subject:  syslog: ME cant nonblock 15 Operation not supported.
  2768.  
  2769. I get the following "syslog" message in /var/adm/messages:
  2770.  
  2771. Dec  2 20:40:04 venus innd: ME cant nonblock 15 Operation not supported
  2772.  
  2773. Answer: (from paulr@umbc4.umbc.edu (Paul Riddle))
  2774.  
  2775. It turns out that this is happening because /usr/spool/news on the
  2776. machine running innd is an NFS-mounted filesystem, and innd is trying
  2777. to do an FIONBIO on my feed file, which is under /usr/spool/news/out.going.
  2778.  
  2779. (tal@plts.org adds:)
  2780. All news transports (INN, C news, B news) want the spool partition to
  2781. be local.  Newsreader can read from an NFS mounted partition without
  2782. any problems but innd should only see local partitions.  NFS has a
  2783. blatant disregard for many of the file semantics that are needed for a
  2784. good netnews implementation.  If you don't agree, please feel free to
  2785. prove the authors of B news, C news, and INN wrong.  Include source
  2786. code. :-)
  2787.  
  2788. Systems without unix-domain sockets sometimes see this error.  Just
  2789. ignore it.
  2790.  
  2791.  
  2792. ------------------------------
  2793.  
  2794. Subject:  innd: ME cant update_active control
  2795.  
  2796. What does "innd: ME cant update_active control" mean?
  2797.  
  2798. Look at your active file.  One of the fields is "99999" and has to be
  2799. incremented to "100000" but there is no space.  Shut down innd
  2800. ("ctlinnd shutdown x").  Edit your active file (see the "Safe way to
  2801. edit the "active" file?" question in INN FAQ part 3) to add more
  2802. leading zero's to all the numbers.  Restart innd.
  2803.  
  2804.  
  2805. ------------------------------
  2806.  
  2807. Subject:  syslog message: innxmit[1234]: max connect failed Error 0
  2808.  
  2809. John Line <jml4@cus.cam.ac.uk> writes:
  2810.  
  2811. If you get syslog messages like "innxmit[1234]: max connect failed
  2812. Error 0" when using nntpsend, it probably means you messed up a line in
  2813. nntpsend.ctl (specifically, missed out one of the first two fields).
  2814. While nntpsend.ctl is an obvious place to look for an nntpsend problem,
  2815. there is nothing obvious to link the error message directly to the
  2816. problem, because the text "max" is actually something invented by
  2817. nntpsend when processing the file, and doesn't exist in nntpsend.ctl.
  2818. It means the next-to-last field was null, but was the second field when
  2819. it should have been the third!
  2820.  
  2821. NB Remember to try inncheck when you have problems like this. I only
  2822. just thought of it, after finding the problem the hard way, and it
  2823. immediately reported "nntpsend.ctl:18: malformed line."
  2824.  
  2825.  
  2826. ------------------------------
  2827.  
  2828. Subject:  Can't open "/usr/local/news/shlock955", Permission denied
  2829.  
  2830. This usually means you don't have /usr/local/news owned by "news".  The
  2831. first time you run "make install" it should set the proper ownership if
  2832. you run "make install" as "root".
  2833.  
  2834.  
  2835. ------------------------------
  2836.  
  2837. Subject:  INND: PID file exists -- unclean shutdown!
  2838.  
  2839. This just means your machine crashed or you didn't shutdown innd
  2840. properly and THEREFORE rc.news is doing a bit of cleanup work before it
  2841. starts innd.
  2842.  
  2843. There is nothing for you to do.
  2844.  
  2845.  
  2846. ------------------------------
  2847.  
  2848. Subject:  cant fopen /usr/lib/news/distributions
  2849.  
  2850. Step 1:  Can you "cat" this file?
  2851.  
  2852. Step 2:  You can't?  Does it exist?
  2853.  
  2854. Step 3:  It doesn't?  That's because you have to create it yourself.
  2855. It should list every distribution your users might want to know a
  2856. discription of, starting with the local one.
  2857.  
  2858. Step 4:  Here's a sample file to start from.  It's appropriate for
  2859. a New Jersey site:
  2860.  
  2861. nj    New Jersey
  2862. ny    New York
  2863. nyc    New York City
  2864. ne    North East, USA
  2865. usa    United States of America
  2866. na    North America
  2867.  
  2868.  
  2869. ------------------------------
  2870.  
  2871. Subject:  cant fopen /usr/lib/news/distrib.pats
  2872.  
  2873. A sample distrib.pats comes with the distribution and should
  2874. be in your $inn/site directory automatically.  The sample
  2875. file can be used without modification.  If you get this
  2876. error it sounds like something was badly configured on your
  2877. machine.
  2878.  
  2879.  
  2880. ------------------------------
  2881.  
  2882. Subject:  ME cant exec in /usr/lib/news/capture No such file or directory
  2883.  
  2884. The newsfeeds file includes lines that looks like this:
  2885.  
  2886. ## Capture all Foo, Incorporated, postings
  2887. #capture\
  2888. #       :*/foo\
  2889. #       :Tp,H2:/usr/lib/news/capture %s
  2890.  
  2891. That's just a sample of how one might capture articles.  There is no
  2892. capture program that comes with INN.  It's just an example of how to
  2893. use the Tp,H2 flags.
  2894.  
  2895. Don't uncomment anything that you don't want to activate!
  2896.  
  2897.  
  2898. -- 
  2899.  George Will, Rush Limbaugh, John Sununu, Pat Buchanan, James Kilpatrick, Mona
  2900.   Charen, G. Gordon Liddy, Robert Novak, Bay Buchanan, Pat Robertson, Joseph
  2901.    Sobran, Paul Harvey, Phyllis Schafly, Maureen Reagan, and John McLaughlin
  2902.           always bemoan the need for more conservative media voices.
  2903. Posted-By: post_faq 2.10
  2904. Archive-name: usenet/software/inn-faq/part3
  2905. Last Changed: $Id: FAQ-inn.3,v 1.111 1995/02/27 09:14:01 tal Exp $
  2906.  
  2907.                   Part 3 of 4
  2908.  
  2909. INN FAQ Part 1/4: General Information
  2910. INN FAQ Part 2/4: Debugging Guide & Tutorial
  2911. INN FAQ Part 3/4: Operational and Misc. Questions
  2912.                     Day-to-day operational questions
  2913.                     INN is running, but i have this small problem...
  2914.                     How do i... (Big changes you can make to the system)
  2915.                     Bugs in INN 1.5:
  2916.                     Bugs in INN 1.4:
  2917.                     Bugs in INN 1.3:
  2918.                     Bugs in INN 1.2:
  2919. INN FAQ Part 4/4: Appendix A: Norman's install guide
  2920.  
  2921.  
  2922. ------------------------------
  2923.  
  2924. Subject:  Table Of Contents for Part 3/4
  2925.  
  2926. =====================================================================
  2927.   TABLE OF CONTENTS FOR PART 3/4:  Operational and Misc. Questions
  2928. =====================================================================
  2929.  
  2930. DAY-TO-DAY OPERATIONAL QUESTIONS:
  2931.     How do I create all those directories in the newsspool?
  2932.     Why is /usr/lib/news/newsgroups not found?
  2933.     Safe way to edit the "active" file?
  2934.     What's the best way to upgrade to a new version of INN?
  2935.     How do I talk to innd from C or Perl?
  2936.     After a crash.
  2937.     How do I moderate a mailing list?
  2938.     How do I configure the /usr/lib/news/moderators file?
  2939.     Listing every article
  2940. INN IS RUNNING, BUT I HAVE THIS SMALL PROBLEM...:
  2941.     XHDR says Bad Article Number
  2942.     Everything I receive, I re-feed to the feeder
  2943.     Suddenly my active and history files are owned by root!
  2944.     How come my host name comes out twice in the Path line?
  2945.     Expire had problems last night, and while I fixed the problem,
  2946.     expire reports "Group not matched (removed?) --
  2947.         Using default expiration"
  2948.     Why doesn't this newsfeeds entry do what I want?
  2949.     Why am I forwarding cancel messages for articles in comp.foo
  2950.     Debugging someone that is feeding you.
  2951.     Feeds suddenly can't connect anymore!
  2952.     I'm getting groups sent to me that I don't want.
  2953.     When my feeder connects, I get articles but they don't take
  2954.         what's waiting for them.
  2955.     Directories are being created with wrong permissions.
  2956.     Why am I getting alt.sex.pictures even though I have...
  2957.     More about the "to.*" groups
  2958.     What's a decent syslog.conf configuration?
  2959.     INN batcher writing "#!rnews 0" separators
  2960.     Posting while throttled doesn't work
  2961.     overchan can't keep up.
  2962.     "newgroup" control messages aren't being executed
  2963. HOW DO I... (Big changes you can make to the system):
  2964.     How do I set up a delayed IHAVE/SENDME over NNTP?
  2965.     Can I use gzip with INN?
  2966.     What do I do if /var/spool/news is split over multiple partitions?
  2967.     Archiving expired articles
  2968.     How do I restrict access on certain newsgroups (like alt.sex)
  2969.     INN on one machine, UUCP modem on a different one
  2970.     Setting up proxy-nntp to talk through a firewall
  2971.     How do I set up inpaths with INN?
  2972. BUGS IN 1.4:
  2973.     Security Patch
  2974.     Looping Select Patch
  2975. BUGS IN 1.3:
  2976.     7-bit encoded batches are not correctly processed. Why is this?
  2977.     NOV (overchan) doesn't work well.
  2978. BUGS IN 1.2:
  2979.     Why doesn't nntpget work?
  2980.  
  2981.  
  2982. =====================================================================
  2983.                   DAY-TO-DAY OPERATIONAL QUESTIONS
  2984. =====================================================================
  2985.  
  2986.  
  2987. ------------------------------
  2988.  
  2989. Subject:  How do I create all those directories in the newsspool?
  2990.  
  2991. Q:  For example, if you receive comp.sys.amiga.applications, do you
  2992. have to mkdir /var/spool/news/comp/sys/amiga/applications?
  2993.  
  2994. A:  Nope.  innd creates the directory for you the first time you
  2995. receive an article for that newsgroup.
  2996.  
  2997.  
  2998. ------------------------------
  2999.  
  3000. Subject:  Why is /usr/lib/news/newsgroups not found?
  3001.  
  3002. The latest rev is in:
  3003.         ftp://ftp.uu.net/networking/news/config/newsgroups.Z
  3004. Get it and install it.
  3005.  
  3006. ------------------------------
  3007.  
  3008. Subject:  Safe way to edit the "active" file?
  3009.  
  3010. First of all, you could manipulate the active file using the ctlinnd
  3011. "newgroup", "rmgroup" and "changegroup" commands.  However, sometimes
  3012. you just need to do a lot of editing all at once:
  3013.  
  3014. The following sequence is the shortest:
  3015.  
  3016.     ctlinnd pause "edit active"
  3017.     [do something to the active file]
  3018.     ctlinnd reload active "edit active"
  3019.     ctlinnd go "edit active"
  3020.  
  3021. Simple!  No need to "flush" since the "pause" does that.
  3022.  
  3023. > What if I need to delete 3000 lines from my active file?
  3024.  
  3025. I would definately edit the active file manually (using
  3026. the above procedure).
  3027.  
  3028. > What if I need to delete 10 lines from my active file?
  3029.  
  3030. For a couple quick changes, I recommend using "ctlinnd".  This is a
  3031. little slow because all channels are closed and reopened after each
  3032. "rmgroup", "newgroup", and "changegroup".  However, it's easier than
  3033. remembering the above sequence.
  3034.  
  3035. DO NOT THROTTLE THE SERVER WHEN DOING MULTIPLE rmgroup COMMANDS.  There
  3036. is a bug in INN (all versions) that will shred your active file if you
  3037. do multiple "rmgroup" messages while the server if throttled.  This is
  3038. a common mistake.  People think the "rmgroup"'s will go faster if the
  3039. server is throttled.  It will go faster, it will also shred your active
  3040. file.
  3041.  
  3042. If you have a large number of groups to remove or create, you can use
  3043. awk to write a script to do the work for you.
  3044.  
  3045.     % cat thelist
  3046.     alt.foo.bar
  3047.     alt.delete.me
  3048.     comp.sys.mac
  3049.     % awk <thelist '{ print "ctlinnd rmgroup " $1 }'
  3050.     ctlinnd rmgroup alt.foo.bar
  3051.     ctlinnd rmgroup alt.delete.me
  3052.     ctlinnd rmgroup comp.sys.mac
  3053.  
  3054. Now, you can either send the output of that to "| sh -x",
  3055. or you can redirect the output to a file, and "source" the
  3056. file.
  3057.  
  3058. If you want to create a bunch of newsgroups, the awk
  3059. command might be like this:
  3060.  
  3061.     % awk <thelist \
  3062.     '{ print "ctlinnd newgroup " $1 " y user@host" }' | sh -x
  3063.  
  3064.  
  3065. ------------------------------
  3066.  
  3067. Subject:  What's the best way to upgrade to a new version of INN?
  3068.  
  3069. First, you should read the README and the Install.ms (yes, read
  3070. them both... again).   Things change in new versions.
  3071.  
  3072. Second, the README explains how to do an upgrade.  This document
  3073. is redundent, but explains the procedure in more detail.
  3074.  
  3075. STEP 1:  Copy the values in the old config.data to your new config.data.
  3076. You can do this automaticly with this trick:
  3077.  
  3078.     % cd config
  3079.     % make subst
  3080.     % cp config.dist config.data
  3081.     % ./subst -f {OLDFILE} config.data
  3082. where "{OLDFILE}" names your old config.data file.
  3083.  
  3084. STEP 2:  Edit the config.data to see if you want to change any of
  3085. the new settings that didn't exist in the old version's config.data
  3086. file.
  3087.  
  3088. STEP 3: Compile everything:
  3089.  
  3090.     % cd $INN
  3091.     % make all
  3092. (you can run "make world", which also runs "lint".  If you don't
  3093. know what "lint" is, just ignore anything it outputs.  If it bombs,
  3094. run "make all" instead.)
  3095.  
  3096. STEP 4: When you feel you are ready to install the new files shut down
  3097.     the old daemon:
  3098.  
  3099.     % ctlinnd shutdown 'upgrade in progress'
  3100.     [ kill innwatch by hand if you need to ]
  3101.  
  3102. STEP 4: Install the new files:
  3103.  
  3104.     % cd $INN
  3105.     % make update
  3106.  
  3107. STEP 5: Now update all your $INN/site files to be the same as they were
  3108. for your old software.  "cd $INN/site ; make diff-installed" will tell
  3109. you what's different between the files in /usr/lib/news and $INN/site.
  3110. If you only make changes in the $INN/site directory and use "make
  3111. install" to copy them into place you'll save your self a lot of
  3112. trouble.  Read $INN/site/Makefile for more interesting things that
  3113. "make" can do.
  3114.  
  3115. STEP 6: When you feel you are ready to install the new $INN/site files:
  3116.  
  3117.     # cd $INN/site
  3118.     # make install
  3119.  
  3120. STEP 7: Re-start the system:
  3121.  
  3122.     % sh /usr/lib/news/etc/rc.news
  3123.  
  3124. STEP 8: If everything was done right you should be up and running.
  3125. Part 2 of the FAQ gives tips on testing your configuration.
  3126.  
  3127.  
  3128. ------------------------------
  3129.  
  3130. Subject:  How do I talk to innd from C or Perl?
  3131.  
  3132. Rich Salz says:
  3133.  
  3134. If you are writing C, look at doc/inndcomm.3 and include/inndcomm.h;
  3135. they include all you need to do any ctlinnd command (in fact, ctlinnd
  3136. itself is little more than a call to the library).
  3137.  
  3138. Hacking up a Perl subroutine that spoke to innd's Unix-domain control
  3139. socket should be fairly straightforward but hasn't yet been written.
  3140.  
  3141.  
  3142. ------------------------------
  3143.  
  3144. Subject:  After a crash.
  3145.  
  3146. "What do I do after a system crash?"
  3147.  
  3148. INN handles crashes pretty well.  If there are any problems they
  3149. get cleaned up by the nightly expire.  About once a month you
  3150. might want to run "makehistory -buv" to look for "lost" articles.
  3151. Check the man page for "makehistory" for more information.
  3152. (The man page for "makehistory" is in the news-recovery man
  3153. page until INN 1.4).
  3154.  
  3155.  
  3156. ------------------------------
  3157.  
  3158. Subject: How do I moderate a mailing list?
  3159.  
  3160. Ask your news administrator.  If you are the news administrator, read
  3161. RFC 1036.  (also, refer to "How do I configure the
  3162. /usr/lib/news/moderators file?")
  3163.  
  3164.  
  3165. ------------------------------
  3166.  
  3167. Subject: How do I configure the /usr/lib/news/moderators file?
  3168.  
  3169. Q: The 'moderators' file that comes with INN has only the following
  3170. lines:
  3171.  
  3172.     gnu.*:%s@tut.cis.ohio-state.edu
  3173.     *:%s@uunet.uu.net
  3174.  
  3175. Should this be changed?  That is, if at Usenet site, does the news
  3176. admin have to configure this file in order for INN to email the local
  3177. posts to moderated newsgroups to the correct moderator?  In this case
  3178. then, every time a new moderated group is created, and/or changes its
  3179. moderator, it should be necessary to change this file.
  3180.  
  3181. A: Fortunately not!
  3182.  
  3183. First of all, the default configuration says, "The moderator for
  3184. foo.bar is foo-bar@uunet.uu.net".  The good people at UUNET keep mail
  3185. aliases for all the moderated newsgroups so that as moderators come and
  3186. go, they will always forward to the correct person.
  3187.  
  3188. Refer to the "How to Construct the Mailpaths File" FAQ, for an
  3189. explanation of the moderation mechanism.  This article explains the
  3190. 'mailpaths' file from C News, which is similar in nature to the INN's
  3191. 'moderators' file although with a different syntax.
  3192.  
  3193. The file 'moderators' could be modified, though, according to that
  3194. article.  For example, there are other sites that do what UUNET does,
  3195. and they might be closer to you.
  3196.  
  3197. Also, you might want to take a look to the inn.conf(5) man page to read
  3198. the 'moderatormailer' parameter description.
  3199.  
  3200.  
  3201. ------------------------------
  3202.  
  3203. Subject:  Listing every article
  3204.  
  3205. People often ask for a way to list every file in the newsspool.  There
  3206. are a couple ways of doing this.  They work well for INN as well as C
  3207. News:
  3208.  
  3209. 1. Here's the fastest way.  However, it only lists the files that are
  3210. actually in the history file and if an article is crossposted it only
  3211. gets listed once:
  3212.  
  3213. #!/bin/sh
  3214. . /usr/lib/news/innshellvars
  3215. cd ${SPOOL}
  3216. awk '(NF > 2){print $3}' < ${HISTORY} | tr . /
  3217.  
  3218. Sorting the output will improve directory cache efficiency.
  3219.  
  3220. 2. This lists any article file no matter how many links
  3221. you have, etc. and even if it is not listed in the history
  3222. file:
  3223.  
  3224.     cd /var/spool/news
  3225.     gfind . -regex '.*/[0-9][0-9]*$' -print
  3226.  
  3227. NOTE: GNU find will execute this much faster than the "find" that
  3228. comes with most versions of Unix (including SunOS).
  3229.  
  3230. 3. If you need to do something fancier than what find can do, consider
  3231. using perl's find2perl program.  Given a find command line, find2perl
  3232. will output the perl code to do the same thing.  You can then modify
  3233. the output to do what you want.  For example:
  3234.  
  3235.     find2perl . -mtime +30 -name '[0-9][0-9]*$' -exec '/bin/rm {}'
  3236.  
  3237. outputs a perl script that deletes any article that is over 30 days old
  3238. (except the regular expression is output as wrong...  change it to:
  3239.  
  3240.     /^[0-9]+$/ &&
  3241.  
  3242. and it should work just fine.
  3243.  
  3244.  
  3245. =====================================================================
  3246.           INN IS RUNNING, BUT I HAVE THIS SMALL PROBLEM...
  3247. =====================================================================
  3248.  
  3249. ------------------------------
  3250.  
  3251. Subject:  XHDR says Bad Article Number
  3252.  
  3253. Q: When I do a XHDR command the INN NNTP server may give
  3254. me article numbers which is not valid (get 403 Bad Article Number
  3255. when requesting the article text). Is this normal?
  3256.  
  3257. A: Absoltuely not!
  3258.  
  3259. Perhaps DIR_STYLE is wrong?
  3260.  
  3261.  
  3262. ------------------------------
  3263.  
  3264. Subject:  Everything I receive, I re-feed to the feeder
  3265.  
  3266. "It seems that all the articles sent to me are resent back to my
  3267. provider.  I only want to post those articles which have been locally
  3268. generated at my site back to my news feed provider."
  3269.  
  3270. or "I feed a site named foo.bar, but it puts something besides foo.bar
  3271. in their Path: header"
  3272.  
  3273. Let's look at a typical Path: line:
  3274.  
  3275. Path: plts!sdl!newsgw.mentorg.com!uunet!gatech!howland.reston.ans.net!agate!barrnet.net!jfrank.com!usenet
  3276.  
  3277. As a post goes from system to system, each site prepends their sitename
  3278. to the line.  Usually a site uses their FQDN, but sometimes they register
  3279. something with the UUCP Mapping Project which makes sure no two sites use
  3280. the same name.  In the above, we see a couple FQDN's and a couple sites
  3281. that are registered with the UUCP Mapping Project.
  3282.  
  3283. INN will not feed this article to any feed who's name appears in the Path:
  3284. header.
  3285.  
  3286. Suppose you have a feed to/from barrnet.net that looks like this:
  3287.  
  3288. netnews.barrnet.net:*,!control,!junk:Tf,Wnm:
  3289.  
  3290. This means "send all newsgroups except control and junk, but not if the
  3291. Path: line includes 'netnews.barrnet.net'".  That's fine, but as we see
  3292. in the above Path: example, BarrNet puts "barrnet.net" in the path,
  3293. even though their netnews machine is called "netnews.barrnet.net".
  3294.  
  3295. Therefore, we change the newsfeeds file to include a "/barrnet.net"
  3296. which means "exclude posts that have gone through barrnet.net".
  3297.  
  3298. netnews.barrnet.net/barrnet.net:*,!control,!junk:Tf,Wnm:
  3299.  
  3300. Now you won't feed to netnews.barrnet.net articles that have already
  3301. gone through barrnet.
  3302.  
  3303. The best way to solve this problem is:
  3304.     1.  Read the Path: line from an article that has passed
  3305.         through that site already.
  3306.     2.  Insert that sitename into the feeds description in newsfeeds.
  3307.     3.  "ctlinnd reload newsfeeds fixed_feed"
  3308.  
  3309. OTHER USES:
  3310.  
  3311. Suppose two sites have very reliable NNTP feeds from uunet and psinet
  3312. but still want a feed between each other to increase redundency.  They
  3313. might set up feeds like:
  3314.  
  3315. othersite/uunet,uupsi:...
  3316.  
  3317. so that they aren't sending articles that have already reached two of
  3318. the biggest sites on Usenet (and therefore must have gotten good
  3319. distribution already), but will pass on everything else.
  3320.  
  3321.  
  3322. ------------------------------
  3323.  
  3324. Subject:  Suddenly my active and history files are owned by root!
  3325.  
  3326. rc.news runs from root.  After that, everything else should run as
  3327. news.  It sounds like you've run news.daily as root by mistake.  Make
  3328. sure all your cron jobs run as news and you'll be fine.
  3329.  
  3330. If you have an old "cron" system, you might consider replacing yours
  3331. with one of the many public domain replacements.  If you can't create
  3332. a different "crontab" for each user, the idiom is:
  3333.  
  3334. 0 * * * * * su news -c '/do/this/as/news'
  3335.  
  3336.  
  3337. ------------------------------
  3338.  
  3339. Subject:  How come my host name comes out twice in the Path line?
  3340.  
  3341. The INN server puts its name in the Path line of every article that it
  3342. receives.  Obviously, it has to do this.  The default configuration has
  3343. inews put the local host in the Path header.  If nobody posts on the
  3344. server and you use fully-qualified domain names on your workstations,
  3345. then everything works the right way.  (If `hostname` doesn't give an
  3346. FQDN on your machine, you can work-around this by setting the "domain"
  3347. value in inn.conf; remember that innd never re-reads inn.conf.  You
  3348. must "ctlinnd shutdown x" and then re-start the server).  Many people
  3349. don't want the client machines to put their name in the Path header.
  3350. To do this, set INEWS_PATH to DONT.  Finally, let me say that it is
  3351. probably a mistake to have a "pathhost" line on any machine other than
  3352. your server if you set INEWS_PATH to DO.  If you doubt this, please
  3353. trace the article flow for yourself.  If you are curious about the
  3354. effect of INEWS_PATH, read the nroff source -- not the formatted
  3355. output -- of doc/inews.1
  3356.  
  3357.  
  3358. ------------------------------
  3359.  
  3360. Subject:  Expire had problems last night, and while I fixed the
  3361.             problem, it still won't run.
  3362.  
  3363. When expire starts up it "reserves" the server so that nobody else can
  3364. pause or throttle it.  This prevents anyone else from coming in and
  3365. modifying the history database.  If expire bails out because of a bad
  3366. error (e.g., your expire.ctl has syntax errors) it leaves the server
  3367. reserved so that no maintenance will be done until a good expire run has
  3368. occurred.  To unblock the server, use the ctlinnd "reserve" command with
  3369. an empty string argument.
  3370.  
  3371.  
  3372. ------------------------------
  3373.  
  3374. Subject: expire reports "Group not matched (removed?) --
  3375.         Using default expiration"
  3376.  
  3377. Expire says:
  3378. Group not matched (removed?) alt.techno-shamanism -- Using default expiration
  3379. Group not matched (removed?) misc.computers.forsale -- Using default expiration
  3380. Group not matched (removed?) de.rec.sf.startrek -- Using default expiration
  3381.  
  3382. YOU DID NOTHING WRONG!
  3383.  
  3384. That just means that you've removed those newsgroups groups and expire
  3385. is slowly removing articles from the spool as they expire.  Eventually
  3386. the articles will all have been deleted and so will these messages.
  3387.  
  3388. Here's a neat trick to make deleted groups go away at the next expire
  3389. instead of hanging around waiting for their articles to expire in a
  3390. timely manner.  Using this combination of lines at the *start* of
  3391. expire.ctl:
  3392.     *:A:0:0:0
  3393.     *:U:0:7:31
  3394.     *:M:0:14:365
  3395. will cause groups which are neither moderated nor unmoderated to be
  3396. discarded - the only such groups are deleted ones.  Thanks to
  3397. ian@pipex.net (Ian Phillipps) for this tip!
  3398.  
  3399.  
  3400. ------------------------------
  3401.  
  3402. Subject:  Why doesn't this newsfeeds entry do what I want?
  3403.             "foo.com:alt,!alt.sex"
  3404.  
  3405. A newsfeeds entry is not a sys file (C News) entry.  Please read
  3406. newsfeeds.5.  You might also find the sys2nf program in the frontends
  3407. directory useful, as well as the inncheck Perl script that is found in
  3408. the samples directory.  The INN Configuration FAQ has cook-book
  3409. examples of the steps required to install a NNTP feed, UUCP feed, and
  3410. NNTP via nntplink feed.
  3411.  
  3412.  
  3413. ------------------------------
  3414.  
  3415. Subject:  Why am I forwarding cancel messages for articles in comp.foo
  3416.             when I explicitly have !comp.foo in the newsfeeds entry?
  3417.  
  3418. Control messages can be explicitly forwarded, so a control message to
  3419. comp.foo is forwarded to sites that recieve either comp.foo or control.
  3420. Please see the "Control Messages" section of innd.8.  As that
  3421. documentation says, you probably want to put "!control" in the
  3422. subscription list for most of your newsfeeds.
  3423.  
  3424.  
  3425. ------------------------------
  3426.  
  3427. Subject:  Debugging someone that is feeding you.
  3428.  
  3429. David Myers <dem@meaddata.com> suggests that if a neighbor complains
  3430. that their feed to you doesn't work: (1) make sure they've read the man
  3431. pages, and (2) have them send a copy of their newsfeeds file.
  3432.  
  3433. Truly sage advice!
  3434.  
  3435.  
  3436. ------------------------------
  3437.  
  3438. Subject:  Feeds suddenly can't connect anymore!
  3439.  
  3440. Q:  How come feeds tell me they can't connect to me any more?
  3441.  
  3442. A:  When innd starts up it reads the hosts.nntp file and looks up the
  3443. IP addresses for all the entries mentioned there.  The problem is that
  3444. this data is dynamic (sometimes people change IP addresses), and innd
  3445. never goes back to check.  If your system stays up for days and one of
  3446. your feeds changes their IP address (or has a new CNAME), innd will
  3447. reject them.  Rich plans to handle this in INN1.5, but for now you
  3448. might find it useful to do a "ctlinnd reload hosts.nntp" out of cron
  3449. every day or so or when you notice there's a problem.
  3450.  
  3451. Here is a sample crontab entry to use: (news should run this)
  3452.  
  3453. 55 7,12,17,22 * * * /usr/local/newsbin/ctlinnd -s reload hosts.nntp crontab
  3454.  
  3455. I hope people vary the time this runs.  If a huge number of INN hosts,
  3456. many running NTP so their clocks are within a few ms., all kick off DNS
  3457. lookups at exactly the same time, the internet traffic could get
  3458. "interesting".  Try setting the minutes value to the time you added
  3459. this entry to crontab rather than everyone using "55".  In fact, if
  3460. everyone used their birthday plus 1 if they are born on an odd month,
  3461. that would spread it out just fine.
  3462.  
  3463.  
  3464. ------------------------------
  3465.  
  3466. Subject:  I'm getting groups sent to me that I don't want.
  3467.  
  3468. Tell the system administrator(s) of the machine(s) that feed news to
  3469. you to stop sending those groups.  There is no other way to do it.  (In
  3470. B or C News, the groups would end up in junk; at least with INN they
  3471. are not taking up space.  You should compile with WANT_JUNK set to
  3472. DONT).
  3473.  
  3474. If the people that feed you use B news or C news, remember that they
  3475. don't use a "newsfeeds" file.  They use a file called "sys" which has a
  3476. completely different format for specifying newsgroups.
  3477.  
  3478.  
  3479. ------------------------------
  3480.  
  3481. Subject:  When my feeder connects, I get articles but they don't take what's waiting for them.
  3482.  
  3483. I hate to say this, but this really shows that you haven't RTFMed very
  3484. much.
  3485.  
  3486. News is not automaticly bidirectional (it's like SMTP, not UUCP).  If
  3487. you want to send things out you will have to make sure that you run
  3488. send-nntp or nntpsend from cron.  nntpsend is easier and elsewhere in
  3489. this document there are cookbook examples of what to add every time you
  3490. set up a new feed.
  3491.  
  3492.  
  3493. ------------------------------
  3494.  
  3495. Subject:  Directories are being created with wrong permissions.
  3496.  
  3497. > Question:
  3498. >When I received news for /var/spool/news/foo/bar for the first
  3499. >time, the directories got created:
  3500. >
  3501. ># ls -lgR foo
  3502. >total 1
  3503. >d-wx-w-rwx  2 news     news          512 Feb  9 00:03 bar/
  3504. >
  3505. >What did I do wrong?
  3506. >
  3507. >##  Mode that directories are created under.
  3508. >#### =()<GROUPDIR_MODE          @<GROUPDIR_MODE>@>()=
  3509. >GROUPDIR_MODE           2775
  3510.  
  3511.   Answer:
  3512. You forgot a zero in front of this number, for the C compiler to interpret it
  3513. as octal instead of decimal.
  3514.  
  3515.  
  3516. ------------------------------
  3517.  
  3518. Subject:  Why am I getting alt.sex.pictures even though I have
  3519.             "ME:!alt.sex.pictures" in my newsfeeds file?
  3520.  
  3521. The active file is the definitive list of what newsgroups you receive.
  3522. INN's ME entry is different from C News and B News; please see
  3523. newsfeeds.5.  If you do not want to receive alt.sex.pictures, ask the
  3524. system(s) that send you news not to send it to you.  (You would have to do
  3525. that no matter what news system you are running.)
  3526.  
  3527.  
  3528. ------------------------------
  3529.  
  3530. Subject:  More about the "to.*" groups
  3531.  
  3532. (Thanks to jmalcolm@sura.net (Joseph Malcolm) for supplying
  3533. these answers.)
  3534.  
  3535. >1) Why did my local INN act on the sendsys posted to to.neighbor?
  3536.  
  3537. to.* groups aren't magic to INN.  Your system received the message,
  3538. it acted on it.
  3539.  
  3540. >2) Why did my neighbor send the cmsg to all of his neighbors?
  3541.  
  3542. See 3.
  3543.  
  3544. >3) Is is related to having the "control" group in our newsgroups patterns?
  3545.  
  3546. Yes.
  3547.  
  3548. >   The INN docs say you probably don't want to do this, but they don't say
  3549. >   why.
  3550.  
  3551. Actually, they do. This is from innd(8):
  3552.  
  3553.     Sites may explicitly have the ``control'' newsgroup in their
  3554.     subscription  list,  although  it is usually best to exclude
  3555.     it.  If a control message is posted to a  group  whose  name
  3556.     ends  with  the  four characters ``.ctl'' then the suffix is
  3557.     stripped off and what is left is used  as  the  group  name.
  3558.     For  example,  a cancel message posted to ``news.admin.misc.ctl''
  3559.     will be sent to all sites that subscribe to  ``control''  or
  3560.     ``news.admin.misc''.
  3561.  
  3562. There is also a pointer to this in newsfeeds(5).
  3563.  
  3564. >   But I still need it in my active file, right?
  3565.  
  3566. Yes.
  3567.  
  3568.  
  3569. ------------------------------
  3570.  
  3571. Subject:  What's a decent syslog.conf configuration?
  3572.  
  3573. The configuration will be different for each site, but here is what
  3574. Greg Earle recommends as the lines for the "news.*" related part.
  3575. Remember that most syslog's require tabs, not spaces.
  3576.  
  3577. Greg's canonical SunOS 4.1.x INN-related syslog.conf entries (which can
  3578. be merged into your current configuration):
  3579.  
  3580. #
  3581. # INN stuff
  3582. #
  3583. ##  Send critical messages to everyone who is logged in and to the console.
  3584. news.crit               *
  3585. news.crit               /dev/console
  3586.  
  3587. ##  Log news messages to separate files.
  3588. ##  Note that each level includes all of the above it.
  3589. ## =()<news.crit        @<_PATH_MOST_LOGS>@/news.crit>()=
  3590. news.crit               /var/log/news/news.crit
  3591. ## =()<news.err         @<_PATH_MOST_LOGS>@/news.err>()=
  3592. news.err                /var/log/news/news.err
  3593. ## =()<news.notice      @<_PATH_MOST_LOGS>@/news.notice>()=
  3594. news.notice             /var/log/news/news.notice
  3595.  
  3596.  
  3597. ------------------------------
  3598.  
  3599. Subject:  INN batcher writing "#!rnews 0" separators
  3600.  
  3601. >Outgoing UUCP batches from here are going out with "#!rnews 0" at
  3602. >the head of each article.
  3603.  
  3604. Most common cause:  your newsfeeds entry has "Wnm" not "Wnb".
  3605.  
  3606. Other reasons:
  3607.  
  3608. batchfiles have something other than a single space between article
  3609. filename and size
  3610.  
  3611. batchfiles lack size information (all the articles sizes will be read
  3612. from the batch file as zero)
  3613.  
  3614.  
  3615. ------------------------------
  3616.  
  3617. Subject:  Posting while throttled doesn't work
  3618.  
  3619. >I want to be able to allow my users to be able to post articles when
  3620. >innwatch has throttled the system when the spool disk is "full".
  3621.  
  3622. Cannot be done in 1.4.
  3623.  
  3624. At a minimum, in 1.5 nnrpd will spool the post for the user.
  3625.  
  3626.  
  3627. ------------------------------
  3628.  
  3629. Subject:  overchan can't keep up.
  3630.  
  3631. > About once a month or so, I get the following warning messages:
  3632. > Jan 20 07:20:22 optima innd: overview!:31:proc:9193 cant flush count 14639 Operation would block
  3633. > Jan 20 07:20:22 optima innd: overview! spooling 14639 bytes
  3634.  
  3635. or
  3636.  
  3637. > there's a file "overview!" in /usr/spool/news/out.going with stuff in it.
  3638. > Should I be doing anything more with this than ignoring it, and maybe
  3639. > occasionally deleting it (it just grows)?
  3640.  
  3641. This happens because innd is feeding info to overchan faster than
  3642. overchan can process it.  The overflow is sent to the file
  3643. "overview!".  This file can be deleted, as nnrpd will grab the missing
  3644. data out of the articles "manually".  The slow-down won't be noticed,
  3645. much.  You can "expireover -a" to "fill in the holes".
  3646.  
  3647. To prevent this in the future, you need to make overchan run faster.
  3648. This is easy to do.  There are two things to do:
  3649.  
  3650. 1.  Increase the size of many of your kernel buffers.  In particular,
  3651. increase buffers relating to directory caches (the "namei" cache", to
  3652. mention one).  If you use SunOS, change "maxusers" to 200.  Ignore the
  3653. variable's name.  This variable is used to calculate most of the other
  3654. buffer sizes, etc. and 200 is good for a system that is as overworked
  3655. as, say, a machine running netnews.
  3656.  
  3657. 2.  (this is more important than #1) Move the .overview files out of
  3658. the /var/spool/news hierarchy.  For example, moving the overview files
  3659. into /var/spool/news/over.view made things fast enough on one machine
  3660. that the problem went away.  To do this:  change "_PATH_OVERVIEWDIR" in
  3661. "config.data", recompile, and "make install".  You will need to
  3662. recompile any newsreaders that read via NFS or off the local disk.
  3663.  
  3664. For really great performance, put the NOV files on a separate disk.
  3665. (Not just a separate partition, a separate disk or spindle.)
  3666.  
  3667. This one-liner will generate a shell script that will move your NOV files:
  3668.     awk '{ print $1 }' /usr/lib/news/active | tr . / | awk '{ print "mkdir -p /new/location/" $1 ; print "mv " $1 "/.overview /new/location/" $1 "/.overview" }'
  3669.  
  3670. WHY THIS WORKS:
  3671.  
  3672. Why does doing all this speed up overchan?  overchan works by opening
  3673. the proper ".overview" file, appending 1 line to it, then closing the
  3674. file.  If you have the ".overview" file in the same directory as 10000
  3675. articles then opening the ".overview" file will take a huge amount of
  3676. time.  The open() call literally searches though about 5000 (half of
  3677. 10000) file names to find ".overview".  If you move your ".overview"
  3678. files so that each one is in it's own directory, (say,
  3679. /usr/spool/news/over.view/{group}/{name}/.overview) then open() is
  3680. searching through 3 files ( ".", "..", and ".overview") to find 1
  3681. file.  ( O(N/2) where N=10000 vs. N=3... and you thought those first
  3682. year CS classes would never be useful!)
  3683.  
  3684. There isn't much you can do to make the "append" and "close" steps much
  3685. faster, except maybe install a PrestoServe or similar write-cache, and
  3686. that won't help very much.
  3687.  
  3688. Profiling overchan (with PureSoft's Quantify product) found that the
  3689. open() call was around 80% of the execution time of overchan.  That was
  3690. reduced to 40% when I moved the ".overview" files to their own
  3691. directory.  With the change, overview's profiling statistics are pretty
  3692. flat. (which is good).
  3693.  
  3694. IF YOU CAN'T DO THE ABOVE CHANGES:
  3695. Run "expireover -a" to fix the problem temporarily.  However, it will
  3696. come back.
  3697.  
  3698. DO NOT try feeding the "overview!" file to overchan manually.
  3699.     (1) overchan doesn't do any locking and you'll have two overchan's
  3700.         running at once.
  3701.     (2) overchan only appends to the ".overview" files.  If you've gotten
  3702.         any articles since the "overview!" file was created (you will
  3703.         have) then you'll be appending told old entries that are out of
  3704.         order.  Your ".overview" files must be in sorted order for the
  3705.         other utilities to work right.
  3706.  
  3707.  
  3708. ------------------------------
  3709.  
  3710. Subject:  "newgroup" control messages aren't being executed
  3711.  
  3712. > "newgroup" control messages aren't be executed
  3713.  
  3714. The usual blame for this is _PATH_EGREP points to a grep that doesn't
  3715. understand regular expressions.  For example, GNU grep only understands
  3716. regular expressions if it is called "egrep" (i.e. not "gnuegrep" or
  3717. "egnugrep").
  3718.  
  3719. Make sure you have a link or symlink between egnugrep and egrep.  You
  3720. then need to modify config.data so that _PATH_EGREP is
  3721. /your/local/path/egrep and NOT /your/local/path/egnuegrep.  Then
  3722. recompile and "make install" to have the new binaries and shell
  3723. scripts installed.
  3724.  
  3725. You also want to check the syntax of your control.ctl file.
  3726.  
  3727.  
  3728. =====================================================================
  3729.         HOW DO I... (Big changes you can make to the system)
  3730. =====================================================================
  3731.  
  3732. ------------------------------
  3733.  
  3734. Subject:  How do I set up a delayed IHAVE/SENDME over NNTP?
  3735.  
  3736. Christophe Wolfhugel <Christophe.Wolfhugel@grasp.insa-lyon.fr> writes:
  3737.  
  3738. Having some of your NNTP newsfeeds delayed by a fixed amount of time is
  3739. a good way to reduce your bandwith requirements, or a good way to set
  3740. up a backup-feed.  By including a Wt flag in your newsfeeds file, INN
  3741. will insert timestamp entries in that batchfile, channels, or
  3742. exploders.  This timestamp can be used to implement delayed
  3743. ihave/sendme processing.  INN's senders (like innxmit) do not use that
  3744. data yet.  However, NNTPLINK does support this delayed IHAVE/SENDME
  3745. mechanism since release 3.3  (NNTPLINK can be found on
  3746. shape.mps.ohio-state.edu:/pub/nntplink/nntplink.tar.gz).
  3747.  
  3748. HOW TO DO IT:
  3749.  
  3750. The syntax that you would use in your newsfeeds file would be:
  3751.  
  3752.     site:*:Tf,Wtmn:
  3753.  
  3754. and run this command now and then:
  3755.  
  3756.     nntplink -i batchfile -y 300 -b site news.site.fr
  3757.  
  3758. The delayed IHAVE/SENDME is expected to allow bandwidth savings in
  3759. situations where all sites use nntplink in following topology:
  3760.  
  3761.     Your site -- 64k -----------+-----------  Site 1
  3762.                                 |               |
  3763.                                 |              2mb
  3764.                                 |               |
  3765.                                 +------------ Site 2
  3766.  
  3767.    Site 1 and 2 are in the same metropolitan area, you feed them both.
  3768.    With the standard nntplink layout, you generally send all articles
  3769.    twice, which is a waste even if you're at 2 Meg/s link and even if
  3770.    Site 1 and 2 do nntplinks, you're faster.
  3771.  
  3772.    The delayed link would be used between your site and Site 2.  A 2 or
  3773.    3 minute delay allows Site 1 to feed Site 2 before you, and in case
  3774.    of a Site 1 outage the backup starts nearly immediately.
  3775.  
  3776.    Reasonnable delays are still kept as You -> 1 -> 2 should take less
  3777.    than one minute (or just 300 ms disk to disk if using nntplink -i ? :)).
  3778.  
  3779. Experiences seem to show that a 2 to 3 minutes delay is
  3780. a reasonable choice.
  3781.  
  3782. Chris
  3783.  
  3784. ------------------------------
  3785.  
  3786. Subject:  Can I use gzip with INN?
  3787.  
  3788. [this was written with the help of Michael Brouwer
  3789. <michael@tar.wft.stack.urc.tue.nl>]
  3790.  
  3791. There are three things that can be effected by using gzip:  Compression
  3792. of old logs, compressing batches to send out, and decompressing batches
  3793. that come in.
  3794.  
  3795. With INN 1.4 all you need to do is change two lines in config.data to
  3796. something like this:
  3797.  
  3798. COMPRESS                /usr/local/bin/gzip
  3799. DOTZ                    .gz
  3800.  
  3801. If you rebuild INN with these options set, all logs will be gzipped, and rnews
  3802. will use gzip to decompress news.
  3803.  
  3804. gzip will automaticly and transparently decompress UNIX Compress, SCO
  3805. UNIX Compress (I'm told it's 99% compatible with UNIX Compress), Pack,
  3806. and gzip.  Therefore, you can now receive batches compressed with any
  3807. of the above listed formats.  Let's say your site is now has "a
  3808. universal decompresser".
  3809.  
  3810. It has been reported that if you hardlink gzip to be zcat, and make
  3811. sure that it is the zcat that INN uses, you can get the "universal
  3812. decompresser" without having to use gzip for your logs.  (Though, gzip
  3813. for your logs is a big win, so why make trouble for yourself?)
  3814.  
  3815. `send-uucp' will still use compress for outgoing batches, so the sites
  3816. you feed won't suddenly start getting data they don't understand.
  3817.  
  3818. Before you can send gzipped batches, you should make sure that the
  3819. sites that you feed have made the above changes so that they have the
  3820. "universal decompresser" too.
  3821.  
  3822. Edit send-uucp to use gzip instead of compress for certain hosts (see
  3823. example of using compress -b12 for the host esac in send-uucp),
  3824. outgoing batches will be gzipped.
  3825.  
  3826. If you use sendbatch, you will have to edit the file so that COMPRESS
  3827. is set to "gzip" and COMPFLAGS is set to "-9vc".
  3828.  
  3829.  
  3830. ------------------------------
  3831.  
  3832. Subject:  What do I do if /var/spool/news is split over multiple partitions?
  3833.  
  3834. READ THIS ENTIRE SECTION BEFORE YOU BEGIN.
  3835.  
  3836. First of all, you can do this by either mounting a filesystem at
  3837. /var/spool/news/comp (for example) or by mounting a filesystem anywhere
  3838. and making /var/spool/news/comp a symbolic link to the new partition.
  3839.  
  3840. Articles will be written as normal, but cross-posts have to be handled
  3841. specially now.  Usually INN handles crossposts by writing the article
  3842. to the first newssgroup, and then creating hard links to all the other
  3843. places where the article should appear.  Hard links do not take up
  3844. additional disk space (except making your directories longer).  Hard
  3845. links also have the advantage that the file data doesn't get deleted
  3846. until the last hard link is gone (and they can be deleted in any
  3847. order).  Therefore, you can expire each newsgroup at a different rate,
  3848. but the file data won't delete until it is expired from the last
  3849. newsgroup.
  3850.  
  3851. The problem is that two hard linked files must both be on the same
  3852. filesystem (partition).
  3853.  
  3854. When INN sees that it can not make a hard link (because an article is
  3855. cross-posted across two partitions) it will try to make a symbolic
  3856. link.  If your system can not do symbolic links, set HAVE_SYMLINKS to
  3857. DONT in your config.data file.  This will make INN write a second
  3858. (or third, etc.) copy of the file instead.  (NOTE: INN 1.4 doesn't
  3859. make the extra files.  This feature is planned for INN 1.5.)
  3860.  
  3861. Anyway, even though INN will automatically create symbolic links, you
  3862. have to give expire the "-l" flag so that it will know to modify its
  3863. behavior.  Suppose that a message is posted to rec.photo and
  3864. alt.cameras and suppose that rec.photo expires more quickly then the
  3865. alt group.  If this happens, then you will be left with a dangling
  3866. symlink.  The -l flag prevents this from happening by not removing
  3867. the file from rec.photos until alt.cameras expire time permits it
  3868. from being deleted.
  3869.  
  3870. To inform expire that your spool is split across multiple partitions:
  3871.  
  3872. In news.daily, change:
  3873.     EXPIREFLAGS="-v1"
  3874. to read
  3875.     EXPIREFLAGS="-v1 -l"
  3876.  
  3877. In expirerm, change:
  3878.     RMPROC="fastrm -e -u -s ${SPOOL}"
  3879. to read
  3880.     RMPROC="fastrm -e -s ${SPOOL}"
  3881.  
  3882. Now edit innwatch.ctl so that it checks all the spool disks, not just
  3883. ".".  See the lines with "No space (spool)".
  3884.  
  3885. Lastly, edit innstat (the line with the "df") so that all spool disks
  3886. are included.  After that, you're done!
  3887.  
  3888. If you ever need to run "makehistory" you should pay attention to the
  3889. caveat in makehistory(8) (NB: This man page is called "news-recovery"
  3890. in releases before INN 1.5):
  3891.  
  3892. MOVING THE FILES:
  3893.  
  3894. Here is an example of moving /var/spool/news/rec to its own
  3895. partition:
  3896.     (mount the new disk onto /mnt)
  3897.     cd /var/spool/news/rec
  3898.     tar cf - . | ( cd /mnt && tar xpvf )
  3899.     If you are confident you did it right, "rm -rf /var/spool/news/rec"
  3900.     then "mkdir /var/spool/news/rec".
  3901.     umount /mnt
  3902.     mount /var/spool/news/rec
  3903.  
  3904. If you are moving >50% of the spool, you might use dump instead of tar:
  3905.     dump 0f - /var/spool/news | ( cd /mnt && restore xf - rec)
  3906.  
  3907. Remember:  If you screw up the /etc/fstab, SunOS and many other UNIXs
  3908. won't boot.  fstab can't have any blank lines in many UNIXs either.
  3909. Double check the file after you modify it.
  3910.  
  3911.  
  3912. ------------------------------
  3913.  
  3914. Subject:  Archiving expired articles
  3915.  
  3916. In <2hmomh$262@news.iastate.edu> rod@iastate.edu writes:
  3917. >What options do I have in INN for archiving local newsgroups?
  3918. >Any help would be appreciated. Any cookbook examples would also help.
  3919.  
  3920. See doc/archive.8.  You could also put "never:never:never" in your
  3921. expire.ctl file.
  3922.  
  3923. Here's a cookbook example of an archive feed:
  3924.     # Feed all moderated source postings to an archiver
  3925.     source-archive!:!*,*sources*,!*wanted*,!*.d\
  3926.         :Tc,Nm,Wn:/usr/local/bin/archive -f -i /usr/spool/news.archive/INDEX
  3927.  
  3928. Ulf Kieber <uk1@irz.inf.tu-dresden.de> writes:
  3929. The INN 1.4 newsfeeds(5) man page show how to set up a /program/ feed
  3930. for archive.  The "archive" program currently does NOT support this
  3931. method.  i.e. do not use Tp in "newsfeeds" for an archive feed.
  3932.  
  3933. Even if "archive" supported being used as a program feed, you would not
  3934. want to use it as such if you intended to use the ``-i'' flag as
  3935. archive does not do any file locking on it's index file.  The index
  3936. file might get corruped by multiple concurrently running instances of
  3937. archive, as may happen with a program feed.
  3938.  
  3939.  
  3940. ------------------------------
  3941.  
  3942. Subject:  How do I restrict access on certain newsgroups (like alt.sex)
  3943.  
  3944. >If I were running a news server, and some of my users complained that they
  3945. >didn't want their kids being able to access some of the newsgroups, would it
  3946. >be possible to block access to specific newsgroups on a per-user basis?
  3947.  
  3948. >I'm not asking if it's easy, just _possible_.
  3949.  
  3950. If they are not using NNTP for reading, you can make a /etc/group entry
  3951. for a group called something special, like "horny" and give only users
  3952. in group horny access to read that directory:
  3953.  
  3954.     chown news /var/spool/news/alt/sex
  3955.     chgrp horny /var/spool/news/alt/sex
  3956.     chmod 750 /var/spool/news/alt/sex
  3957.     chmod 750 /var/spool/news/over.view/alt/sex    # your NOV data
  3958.     chmod 770 /var/spool/news/in.coming
  3959.     chmod 770 /var/spool/news/out.going
  3960.  
  3961. Now only people in the group "horny" can read that newsgroup.  Everyone
  3962. can subscribe to it, but only horny people can read it.  innd (which
  3963. runs as "news") will still be able to do its business.
  3964.  
  3965. If the users are using NNTP, then you need a newsreader that can tell
  3966. the server what the user's name is.  nnrpd will use that information
  3967. (see the nnrp.access man page) to restrict newsgroups.  If the
  3968. newsreader software doesn't support this then you can restrict this on
  3969. a per-host basis.  horny people would have to read netnews from a
  3970. particular machine or machines.
  3971.  
  3972. In 1.5 there will be a better protocol for doing this and it should
  3973. gain better acceptance than the current protocol.
  3974.  
  3975.  
  3976. ------------------------------
  3977.  
  3978. Subject:  INN on one machine, UUCP modem on a different one
  3979.  
  3980. Say you have a machine named "newsy" and "modemhead".  "newsy" runs INN
  3981. but only "modemhead" has any modems.
  3982.  
  3983. A quick overview:  config.data has a variable called "RNEWSLOCALCONNECT".
  3984. If it is set to "DO", "rnews" will expect to be running on the same
  3985. machine as "innd".  On the other hand, if "RNEWSLOCALCONNECT" is set to
  3986. "DONT" then "rnews" will connect to the machine listed in "inn.conf".
  3987. Sending batches is a little more complicated.
  3988.  
  3989. Receiving batches on modemhead:  Make sure config.data has
  3990. "RNEWSLOCALCONNECT" set to "DONT", recompile, and copy /bin/rnews and
  3991. /usr/lib/news/inn.conf to modemhead.  The unbatching will be done on
  3992. modemhead, but the articles will be sent to newsy.  It will work like
  3993. magic.  When /bin/rnews runs, it will open an NNTP connection to newsy
  3994. and feed the batch (one article at a time) to newsy... newsy thinks
  3995. it's just getting a regular NNTP feed.  (which means modemhead has to
  3996. be listed in hosts.nntp).  If newsy and modemhead are different platforms
  3997. (i.e. Ultrix vs. SunOS) you can use the MakeRnews script (mentioned
  3998. in Install.ms) to generate just rnews for the modemhead machine.
  3999.  
  4000. Sending batches via modemhead:  The "sendbatch" program calls $(UUX).
  4001. Change ${UUX} to be something like "rsh modemhead uux" instead of "uux".
  4002. You'll have to do a little hacking on sendbatch.  For example, the part
  4003. that checks to see if the queue is full might have to be re-written.
  4004. Anyway... now the batches will be generated and send via modemhead's
  4005. UUCP system.
  4006.  
  4007. Pretty neat, eh?
  4008.  
  4009.  
  4010. Other advice:
  4011.  
  4012. I set UUX to 'rsh uucphost uux' (note no pipe [|]).
  4013. Also, we have no 'uuq' command, but even if we did, it would have
  4014.     returned bogus info as $SITE is not known to UUCP on newshost.
  4015.     Thus I created a stupid 'uuq' that does 'echo 0 0 0 0 0 0 0'
  4016.     to satisfy the awk script.  However, we have no way to monitor
  4017.     queue length (though its of little importance to us as we only have
  4018.     3 feeds and they are partial)
  4019. Finally, the /etc/passwd entry for 'news' on 'uucphost' MUST list /bin/sh;
  4020.     /bin/csh results in 'rnews: event not found' and escaping the '!'
  4021.     inside sendbatch had no effect.
  4022.  
  4023.  
  4024. ------------------------------
  4025.  
  4026. Subject:  Setting up proxy-nntp to talk through a firewall
  4027.  
  4028. Try ftp.cs.cmu.edu:misc/dnntpd/dnntpd.tar.Z
  4029.  
  4030. or look at backends/rcompressed.c in the INN distirbuiton.
  4031.  
  4032. ------------------------------
  4033.  
  4034. Subject:  How do I set up inpaths with INN?
  4035.  
  4036. inpaths should work just fine with INN as it ships.  However, you can
  4037. make it run faster by using the following shell script.  Edit it to
  4038. your tastes.  It replaces the long "(cd /var/spool/news ;
  4039. /usr/local/bin/gfind . -type f -print | /usr/lib/news/local/inpaths sdl
  4040. | /usr/ucb/mail admin,pathsurvey@decwrl.dec.com )" which people usually
  4041. use.
  4042.  
  4043. #!/bin/sh
  4044. . /usr/lib/news/innshellvars
  4045. cd ${SPOOL}
  4046. awk '(NF > 2){print $3}' < ${HISTORY} | tr . / | sort | \
  4047. inpaths `innconfval pathhost` | \
  4048. ${MAILCMD} newsmaster,pathsurvey@decwrl.dec.com
  4049.  
  4050. If the inpaths people would include this information in the
  4051. README, I could delete it from this FAQ.
  4052.  
  4053.  
  4054. =====================================================================
  4055.                            INFO ABOUT 1.5
  4056. =====================================================================
  4057.  
  4058. INN 1.5 hasn't been released yet.  However, people constantly mis-type
  4059. "INN 1.5" when they mean "INN 1.4".  The bug is in the human posting
  4060. the message, not the software.
  4061.  
  4062. Release date for 1.5:  Unknown by even the author.
  4063.  
  4064. New features in 1.5:
  4065.  
  4066. 1)  Fix memory leaks in makehistory, thereby speeding it up.
  4067.  
  4068. 2)  Posting always allowed, even when server is throttled.
  4069.  
  4070. 3)  Operating systems that require HAVE_UNIX_DOMAIN set to DONT won't
  4071.     be so, uh, handicaped.
  4072.  
  4073. 4)  A global killfile controlled by a function you write in TCL.
  4074.     (Start learning TCL now if you want to stay totally hip.)
  4075.  
  4076. 5)  More interesting ways to control access to nnrpd.
  4077.  
  4078. 6)  More support for systems that don't have symbolic links.
  4079.  
  4080. 7)  Free beer.
  4081.  
  4082. 8)  Just kidding about #6.
  4083.  
  4084. None of these features prevent you from having a happy,
  4085. healthy and productive life with INN 1.4sec.
  4086.  
  4087. DO NOT ASK RICH ABOUT 1.5.  IT WILL BE RELEASED WHEN IT IS DONE, NOT
  4088. WHEN SUFFICIENT NUMBERS OF PEOPLE HAVE ASKED WHEN IT WILL BE FINISHED.
  4089. Post to news.software.nntp if you have questions about features.
  4090.  
  4091.  
  4092. =====================================================================
  4093.                              BUGS IN 1.4
  4094. =====================================================================
  4095.  
  4096. UNOFFICIAL patches for INN 1.4 are available via anonymous FTP at
  4097. ftp://ftp.pop.psu.edu/pub/src/news/inn/patches
  4098.  
  4099. The file ftp://ftp.pop.psu.edu/pub/src/news/inn/patches/README describes
  4100. each of the UNOFFICIAL patches.
  4101.  
  4102. The ones that are highly recommended are:
  4103.  
  4104. 1.4-to-1.4sec     -- Fixes the major security hole in INN.
  4105. 1.4sec-to-1.4sec2 -- Fixes the remaining known security hole in INN.
  4106. select-loop-bug.patch -- Under some circumstances innd can lose track
  4107.         of a file descriptor and end up sitting in a select()
  4108.         loop.  If your INN suddenly is using up tons of CPU
  4109.         time and not getting much done, install this UNOFFICIAL
  4110.         patch.  Some OSs are more susecptible to this bug.
  4111.  
  4112. THERE ARE MANY MORE at that site, many add some useful features.
  4113.  
  4114. There is a replacement for innwatch that is written in Perl.  Get it from
  4115. "ftp://ftp.univ-lyon1.fr/pub/unix/news/inn/contrib/innwatch-beta2.pl.gz".
  4116. This directory is mirrored on ftp://ftp.pop.psu.edu/pub/src/news/inn/contrib
  4117.  
  4118.  
  4119. =====================================================================
  4120.                              BUGS IN 1.3
  4121. =====================================================================
  4122.  
  4123.  
  4124. ------------------------------
  4125.  
  4126. Subject:  7-bit encoded batches are not correctly processed. Why is this?
  4127.  
  4128. Chris Schmidt <cs@germany.eu.net> replies:
  4129.  
  4130. The decode program that comes with INN up to version 1.3 is broken.
  4131. Because of that the last article in a 7bit encoded batch will not
  4132. correctly be decoded (the last characters are screwed up).  This is
  4133. fixed in INN 1.4.
  4134.  
  4135.  
  4136. ------------------------------
  4137.  
  4138. Subject:  NOV (overchan) doesn't work well.
  4139.  
  4140. Correct.  The NOV support in 1.3 didn't have all the bugs worked out.
  4141. Don't use NOV under INN 1.3.  Better yet, upgrade to 1.4sec and get all
  4142. the benefits!
  4143.  
  4144.  
  4145. =====================================================================
  4146.                              BUGS IN 1.2
  4147.                  (Hey, it's 1994!  Upgrade already!)
  4148. =====================================================================
  4149.  
  4150. ------------------------------
  4151.  
  4152. Subject:  Why doesn't nntpget work?
  4153.  
  4154. The nntpget in INN 1.2 doesn't work.  Period.  Upgrade to the latest
  4155. version of INN.
  4156.  
  4157. -- 
  4158.  George Will, Rush Limbaugh, John Sununu, Pat Buchanan, James Kilpatrick, Mona
  4159.   Charen, G. Gordon Liddy, Robert Novak, Bay Buchanan, Pat Robertson, Joseph
  4160.    Sobran, Paul Harvey, Phyllis Schafly, Maureen Reagan, and John McLaughlin
  4161.           always bemoan the need for more conservative media voices.
  4162. Posted-By: post_faq 2.10
  4163. Archive-name: usenet/software/inn-faq/part4
  4164. Last Changed: $Id: FAQ-inn.4,v 1.6 1994/12/10 17:59:38 tal Exp $
  4165.  
  4166. This is a separate guide for installing INN addressed to 
  4167. UNIX and System Administration novices.  It is written for 
  4168. installation of INN 1.4 on a Sun SPARCstation 10/30 running 
  4169. Solaris 1.1 (SunOS 4.1.3).  This guide is maintained by 
  4170. Norman J. Pieniazek (norman@giardia.pdb.cdc.gov).  Please 
  4171. send updates and corrections to him.
  4172.  
  4173. This guide is composed of following parts:
  4174.  
  4175.   I. SYSTEM REQUIREMENTS
  4176.  II. INSTALLATION OF INN 1.4
  4177. III. UPGRADING FROM INN 1.3 TO INN 1.4
  4178.  IV. MAINTENANCE OF INN
  4179.   V. INSTALLATION OF XVNEWS, A SUN OPENWINDOWS
  4180.      NEWSREADER
  4181.  
  4182.  
  4183.  
  4184. I. SYSTEM REQUIREMENTS
  4185.  
  4186.   1. INN will not install nor run on Sun SPARCstation under
  4187.      plain Solaris 1.1 unless you install some software
  4188.      packages and utilities.  Also, your machines IP number
  4189.      has to be entered in a Domain Name Service database
  4190.      (DNS) to be resolvable.  Ask your Network Administrator
  4191.      about DNS or read the O'Reilly & Associates, Inc.
  4192.      book: "DNS and BIND by Paul Albitz & Cricket Liu,
  4193.      ISBN 1-56592-010-4.
  4194.      
  4195.      Further, test the resolver on your machine by
  4196.      pinging a hostname not entered in your /etc/hosts file.
  4197.      For example, type: 
  4198.       ping ncbi.nlm.nih.gov
  4199.      The response should be:  "ncbi.nlm.nih.gov is alive".
  4200.      If you get: "unknown host", consult the O'Reilly book.
  4201.    
  4202.   2. Be sure to su to root before performing tasks
  4203.      outlined below.  Next, check if you have a directory
  4204.      /usr/local and about 90 Mb of space in the partition
  4205.      where this directory is located.  Create directories:
  4206.      /usr/local/bin, /usr/local/lib and /usr/local/man if
  4207.      you do not have them.  Add /usr/local/bin to your path
  4208.      and /usr/local/man to your MANPATH. 
  4209.          
  4210.   3. INN uses gnu versions of grep, awk and sed.  Moreover,
  4211.      it is  recommended to compile INN with the gnu
  4212.      versions of make and the gnu gcc compiler instead of
  4213.      the Sun's unbundled cc compiler.  If you don't have
  4214.      the gnu software package, create a directory
  4215.      /usr/local/gnu, cd to this directory and ftp to
  4216.      aeneas.mit.edu (18.71.0.38). Go to
  4217.      directory /pub/gnu and get the following files
  4218.      (versions as of February 4, 1994):
  4219.  
  4220.       bison      bison-1.22.tar.gz    
  4221.       gawk       gawk-2.15.4.tar.gz
  4222.       gcc        gcc-2.5.8.tar.gz
  4223.       grep       grep-2.0.tar.gz
  4224.       gzip       gzip-1.2.4.tar
  4225.       make       make-3.70.tar.gz
  4226.       patch      patch-2.1.tar.gz
  4227.       perl      perl-4.036.tar.gz
  4228.       sed        sed-2.03.tar.gz
  4229.       texinfo    texinfo-3.1.tar.gz
  4230.  
  4231.      Installation of these programs is quite complicated,
  4232.      but is really beneficial.  After you complete the
  4233.      installation, check if older versions of these programs
  4234.      are not present somewhere in your path.  Delete or
  4235.      rename these old versions.
  4236.  
  4237.    a. Start with gzip.  In /usr/local/gnu type:
  4238.       "tar xvf gzip-1.2.4.tar".  A directory gzip-1.2.4 will
  4239.       be created.  Change to this directory and type:
  4240.       "sh ./configure".  Next, edit the Makefile
  4241.       with the vi editor and change the line starting with
  4242.       "CC" to read: "CC = cc". Then, type: "make".
  4243.       Compilation should complete without errors.  Finally,
  4244.       type: "make install" to complete installation of gzip,
  4245.       gunzip, and other utilities in /usr/local/bin.     
  4246.   
  4247.    b. Compile and install texinfo - info, makeinfo, the GNU
  4248.       hypertext system.  Makeinfo is needed for successful
  4249.       installation of many GNU programs and utilities.
  4250.       In /usr/local/gnu type: "gunzip texinfo-3.1.tar.gz".
  4251.       Next, type: "tar xvf texinfo-3.1.tar".  A directory
  4252.       texinfo-3.1 will be created.  Cd to this directory
  4253.       and type: "sh ./configure".  Next, edit the Makefile
  4254.       as described above for gzip.  Now, type: "make"
  4255.       and ignore any non-fatal errors.  Finally, type:
  4256.       "make install".
  4257.  
  4258.    c. Uncompress, compile and install gnu make.  Follow the
  4259.       steps described for texinfo.  Gnu make will install in
  4260.       /usr/local/bin.  To disable Sun's make, cd to /usr/bin
  4261.       and type: "mv make make.sun".
  4262.  
  4263.    d. Compile and install bison following the procedure
  4264.       described for texinfo.
  4265.  
  4266.    e. Uncompress gcc.  Cd to /usr/local/gnu/gcc-2.5.8 and
  4267.       type:
  4268.         sh ./configure --target=sparc-sun-sunos4.1
  4269.       Next type:
  4270.         make LANGUAGES=c
  4271.       This step will take about 17 minutes to complete.
  4272.       Ignore warnings reported for insn-emit.c.  Next, type:
  4273.         make stage1
  4274.       Ignore reported non-fatal errors.  Next, type:
  4275.         make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O"\
  4276.         LANGUAGES=c
  4277.       This step will take about 19 minutes to complete.
  4278.       Next, type:
  4279.         make stage2
  4280.       Ignore reported non-fatal errors.  Next, type:
  4281.         make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O"\
  4282.         LANGUAGES=c
  4283.       In this step, which lasts about 13 minutes, you will
  4284.       make the final stage 3 compiler.  Now type: "make
  4285.       compare". No errors should be reported here.  Finally,
  4286.       type:
  4287.         make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g\
  4288.         -O" LANGUAGES=c
  4289.       to install the gcc compiler.  It is advisable to
  4290.       recompile patch, gzip, texinfo, make and bison with
  4291.       gcc.  It will be a good test for proper gcc
  4292.       functionality.
  4293.  
  4294.    f. Uncompress gawk. Cd to directory gawk-2.15.4 and type:
  4295.         ./configure sunos41
  4296.       Next type: "make".  When gawk will compile, type:
  4297.         make install
  4298.       Finally, disable Sun's awk by typing:
  4299.         mv /usr/bin/awk /usr/bin/awk_sun
  4300.       and create a link to gawk for awk by typing:
  4301.         ln -s /usr/local/bin/gawk /usr/bin/awk
  4302.  
  4303.    g. Uncompress grep.  Cd to directory grep-2.0 and type:
  4304.         ./configure
  4305.       Next type: "make" and "make install".  Grep will
  4306.       also be installed in /usr/local/bin as fgrep
  4307.       and egrep.  Finally, as some programs expect to find
  4308.       grep, egrep and fgrep in /usr/bin, disable Sun's grep
  4309.       and create appropriate links, just like described
  4310.       for awk.  INN expects to find a program "egnugrep" in
  4311.       /usr/local/bin.  Create it by typing:
  4312.          cp /usr/local/bin/egrep /usr/local/bin/egnugrep
  4313.  
  4314.    h. Uncompress sed and patch.  Compile and install these
  4315.       utilities following the instructions for grep.
  4316.  
  4317.  
  4318.    i. INN comes with some scripts written in the perl
  4319.       language.  Uncompress perl, cd to directory perl-4.036
  4320.       and type:
  4321.        sh ./Configure -d
  4322.       and hit Return for default answers to all questions.
  4323.       Next, type: "make depend", then "make".  Now type:
  4324.        make test
  4325.       to check, if perl works without errors.  Finally,
  4326.       type:
  4327.        make install
  4328.       to complete installation of perl.
  4329.  
  4330.  
  4331.  
  4332. II. INSTALLATION OF INN 1.4
  4333.  
  4334.  
  4335.   1. As root, create directories: /usr/local/inn1.4 (this
  4336.      will be your $inn directory) and /usr/local/news.
  4337.  
  4338.   2. Cd to $inn. Get: inn1.4sec.tar.Z from ftp.uu.net
  4339.      (192.48.96.9).  This file is in the directory:
  4340.      /networking/news/nntp/inn.   As for all files, please
  4341.      remember to set the file type in ftp to binary.
  4342.  
  4343.   3. From the same source and directory get the Frequently
  4344.      Asked Questions (FAQ) files:
  4345.        faq-inn-1.Z
  4346.        faq-inn-2.Z
  4347.        faq-inn-3.Z
  4348.        faq-inn-4.Z (this file)
  4349.        faq-nov.Z
  4350.  
  4351.   4. To uncompress the FAQ files type: "uncompress faq-*.
  4352.      Print the FAQs and read them before proceeding further.
  4353.  
  4354.   6. In $inn type: "zcat inn1.4sec.tar.Z | tar xvf -".  This
  4355.      will install inn files for compilation.
  4356.  
  4357.   7. Change directory to $inn/config, and type:
  4358.        cp config.dist config.data
  4359.        chmod 644 config.data
  4360.      Now use the vi editor to edit config.data.  You should
  4361.      select gcc as the compiler by changing the line that
  4362.      starts with "CC" to read "CC   gcc".  Many lines in
  4363.      config.data define the location of various files
  4364.      and directories.  It's OK to leave defaults, but
  4365.      check if you have ample space in the partition
  4366.      where the articles will be stored (/var/spool).  More
  4367.      information on where INN expects to find certain files
  4368.      is in: $inn/samples/innshellvars.  If necessary, edit
  4369.      the config.data and innshellvars to reflect your
  4370.      configuration.  Please make sure that specified
  4371.      directories and utilities exist on your system.
  4372.     
  4373.   8. Change directory to $inn.  Type: "make world".  Now
  4374.      type:
  4375.        cat */lint
  4376.      Here, you will get a list of compiler warnings and
  4377.      errors.  In addition, "make" created in this step
  4378.      a file:  "$inn/Install.ms".  Print it by typing:
  4379.        nroff -ms Install.ms | lpr
  4380.      Install.ms is a manual for installation of INN written
  4381.      by Rich Salz, the author of INN.  There is a lot of
  4382.      important and interesting information in his manual.
  4383.  
  4384.   9. If you got no fatal errors from make, go to the
  4385.      $inn/site directory
  4386.      and type: "make all".
  4387.  
  4388.  10. There are some scripts and control files listed in
  4389.      inn-faqs and Install.ms that may be modified at this
  4390.      point.  For most installations, the default settings
  4391.      are OK.
  4392.  
  4393.  11. Now cd to $inn and type: "make install" to complete
  4394.      basic installation of INN.
  4395.  
  4396.  12. To finish installation of INN, run the BUILD script
  4397.      in the $inn directory by typing "sh BUILD".  This
  4398.      script will ask a series of configuration questions
  4399.      that are easy to answer.  Please note that if your have
  4400.      "history.*" files in your /usr/local/news directory
  4401.      from a previous or failed installation of INN, the
  4402.      BUILD script will not complete.  Rename them to
  4403.      "old.history.*" and re-run the BUILD script.
  4404.  
  4405.  13. You need a site that will feed news to you.
  4406.      This will depend on your geographic location and
  4407.      organization.  Ask a System Administrator of a site
  4408.      close to you for hints.
  4409.  
  4410.  14. Ftp to your newsfeeding site and get the "active" file
  4411.      from there.  Place this file in your /usr/local/news
  4412.      directory and edit it to your taste.  Remember to
  4413.      include the "control" and "junk" newsgroups.  Also, you
  4414.      have to edit the following files in /usr/local/news:
  4415.      newsfeeds, hosts.nntp and nnrp.access.
  4416.  
  4417.  15. To check for syntax errors in INN control files,
  4418.      file ownership, permissions and other things type:
  4419.        /usr/bin/perl /usr/local/news/bin/inncheck
  4420.      and correct any errors reported by inncheck.
  4421.  
  4422.  16. Look at the file "rc.news" in /usr/local/etc.
  4423.      It's advisable to enable the innwatch utility.
  4424.      Innwatch will throttle the newsserver when your disk
  4425.      will get full and prevent crashes.  Change the line
  4426.      starting with "DOINNWATCH" to read "DOINNWATCH=true".
  4427.      Now type: "sh /usr/local/etc/rc.news"
  4428.      and look in /var/log/syslog for errors.  Also, type:
  4429.        ps -aux| grep news
  4430.      and check, if the innd process owner is news.
  4431.  
  4432.  17. In /etc/aliases create an entry: "usenet: <you, or
  4433.      root>".  Next type: "/usr/ucb/newaliases" to inform the
  4434.      sendmail program that the aliases file has changed.
  4435.      If you are running YP (NIS) on your network, you may
  4436.      optionally add the "usenet" alias to your YP aliases
  4437.      file.  If the machine you are installing INN on is the
  4438.      YP master and the file "/etc/aliases" is the source of
  4439.      the YP aliases map, you should type: "cd /var/yp"
  4440.      followed by "make".  Reboot and restart innd (see #16). 
  4441.    
  4442.  
  4443.  18. To get daily reports on the newsserver activity from
  4444.      the "news.daily" script and to enable the "expire"
  4445.      utility type: "/bin/crontab -e news" and insert the
  4446.      following line:
  4447.        40 23 * * * /usr/local/news/bin/news.daily delayrm
  4448.      or, if you are using overchan (in newsfeeds):
  4449.        40 23 * * * /usr/local/news/bin/news.daily delayrm\
  4450.        expireover
  4451.  
  4452.  19. To set-up complete logging of the server activities
  4453.      and have them ready for a report by the "news.daily"
  4454.      script, you have to edit your /etc/syslog.conf file.
  4455.      Insert at the end of this file the content of
  4456.      the syslog.conf file written by Rich Salz.  This file
  4457.      is in: $inn/syslog.  Please check, if you have the
  4458.      directories and files mentioned in Rich's syslog.conf.
  4459.  
  4460.  20. Run tests from your machine to the server (to your
  4461.      machine at telnet port 119).  See inn-faqs for details.
  4462.  
  4463.  21. After completing these test, be sure to delete the
  4464.      entry for your machine from the hosts.nntp file.  If
  4465.      you will not do it, your machine will be treated as a
  4466.      "feeder" and not as a "reader".
  4467.  
  4468.  22. Set posting. 
  4469.  
  4470.       a. Edit the /usr/local/news/newsfeeds file and add:
  4471.            <alias for your feed>/<full address of feed\
  4472.            :*\ (for all local postings)
  4473.            :Tf,Wnm: (standard entry)
  4474.  
  4475.       b. Edit /usr/local/news/nntpsend.ctl file and add:
  4476.            <alias for your feed>:<full address of feed>::\
  4477.            -T1800 -t300
  4478.  
  4479.       c. Type: "/bin/crontab -e news" and insert a line:
  4480.            0,10,20,30,40,50 * * * *\
  4481.             /usr/local/news/bin/nntpsend
  4482.   
  4483.       d. Run inncheck (see #15).
  4484.  
  4485.       e. Post to misc.test and include "reply" in the
  4486.          Subject line, automatic responses will be mailed to
  4487.          usenet (see #17) within a few minutes.
  4488.  
  4489.  23. To start innd automatically at bootup, include at the
  4490.      end of your rc.local the following lines:
  4491.  
  4492.       #
  4493.       # Start INN news service - Internet News Daemon (innd)
  4494.       #
  4495.       if [ -f /usr/local/etc/rc.news ]; then
  4496.          /usr/local/etc/rc.news; echo "Starting INN news
  4497.                  service"
  4498.       fi
  4499.  
  4500.  24. Watch the news.daily reports in your mail for any
  4501.      additional errors.  To run the news.daily script
  4502.      at any time manually, FIRST SU FROM ROOT TO "news"
  4503.      and type: "/usr/local/news/news.daily".  A mail to
  4504.      "usenet" should arrive within a couple of minutes
  4505.      and may report important configuration problems.
  4506.  
  4507.  
  4508. III. UPGRADING FROM INN 1.3 TO INN 1.4
  4509.  
  4510.   1. Stop the server.  Type:
  4511.        ctlinnd shutdown "upgrade"
  4512.  
  4513.   2. Create a directory /usr/local/inn1.4, this will be
  4514.      your $inn directory.  cd to $inn.  Next, ftp to
  4515.      ftp.uu.net, cd to directory: /networking/news/nntp/inn
  4516.      and get the following files:
  4517.  
  4518.         inn1.4sec.tar.Z
  4519.         faq-inn-1.Z
  4520.         faq-inn-2.Z
  4521.         faq-inn-3.Z
  4522.         faq-inn-4.Z (this file)
  4523.         faq-nov.Z
  4524.      Uncompress and print the FAQs.  Next, type:
  4525.         zcat inn1.4sec.tar.Z | tar xvf -
  4526.  
  4527.      Print the README file.  To print the Install file,
  4528.      type: "make Install.ms" followed by:
  4529.         nroff -ms Install.ms | lpr
  4530.  
  4531.   3. Now, cd to $inn/config and type the following commands:
  4532.         make subst
  4533.         cp config.dist config.data
  4534.         ./subst -f {OLDFILE} config.data
  4535.      where {OLDFILE} is the location of config.data in your
  4536.      INN 1.3 directory.  Be sure to check, if in your old
  4537.      config.data the "CC" line reads "CC  gcc".
  4538.      Ignore warnings about new lines.  Next, type:
  4539.         make sedtest
  4540.      No errors should be reported here.  Now, cd to $inn
  4541.      and type this series of commands:
  4542.         make quiet
  4543.         cd ../lib
  4544.         make libinn.a lint
  4545.         cd ../frontends
  4546.         make all
  4547.         cd ../innd
  4548.         make all
  4549.         cd ../nnrpd
  4550.         make all
  4551.         cd ../backends
  4552.         make all
  4553.         cd ../expire
  4554.         make all
  4555.         cd ../site
  4556.         make all
  4557.         cd ..
  4558.         make update
  4559.  
  4560.   4. Restart innd.
  4561.  
  4562.  
  4563. IV. MAINTENANCE OF INN
  4564.  
  4565.  1. Adding new groups - see also Part IV, Section 3.b,:
  4566.  
  4567.      a. Type: "ctlinnd pause 'edit active'"
  4568.  
  4569.      b. Edit the active file.  The format is:
  4570.           groupname himark lomark flag.
  4571.         Set himark to 0000000000 and lomark to 0000000001.
  4572.  
  4573.     c. Run inncheck (see #11) to check the new active file
  4574.        for errors. 
  4575.   
  4576.     d. Type: "ctlinnd reload active 'new active'".
  4577.  
  4578.     e. Type: "ctlinnd go 'edit active'".
  4579.  
  4580.  
  4581.  2. New groups are sometimes added automatically through
  4582.     a control message.  A mail message to usenet will alert
  4583.     to such an automatic change to the active file.  If you
  4584.     do not want to subscribe to a particular news group,
  4585.     change directory to /usr/local/news and type:
  4586.       ctlinnd rmgroup <group name>
  4587.  
  4588.  3. Sometimes, a mail message will arrive for usenet with
  4589.     a checkgroups file.  Remove header, save the body of
  4590.     the message in:
  4591.       /usr/local/news/bin/control/news_control/news_control_
  4592.                     todaysdate
  4593.     cd to that directory and type:
  4594.       ../docheckgroups <news_control_todaysdate
  4595.              >todaysdate_pre
  4596.     Read the output file (todaysdate_pre) and carry out all 
  4597.     the instructions that you think pertain to your
  4598.     situation.  Read the man pages for "active" and "ctlinnd"
  4599.     for more info.  To implement the changes, you will have to
  4600.     change to the directory: /usr/local/news and:  
  4601.     
  4602.      a. remove a discontinued group:
  4603.           type: "ctlinnd rmgroup <group name>"
  4604.  
  4605.      b. add a group:
  4606.         type: "ctlinnd newgroup <group name> flag <creator
  4607.                                            name>"
  4608.  
  4609.      c. mark a group correctly:
  4610.         type: "ctlinnd changegroup <group name> flag"
  4611.  
  4612.     Run inncheck and repeat the docheckgroups command from
  4613.     the /usr/local/bin/control/news_control directory
  4614.     by typing:
  4615.       ../docheckgroups <news_control_todaysdate
  4616.                                 >todaysdate_after
  4617.     Correct any reported problems.  Also, you may have to
  4618.     edit the /usr/local/news/newsgroups file to reflect
  4619.     any changes you introduced.
  4620.  
  4621.  4. Subscribe to and read the following newsgroups:
  4622.       news.software.nntp
  4623.       news.software.readers
  4624.       
  4625.  
  4626.  5. IMPORTANT!!! Never run fsck on the drive where the
  4627.     /spool/news files are located while running INN.  Innd
  4628.     has a lot of active disk I/O going on and fsck will show
  4629.     a lot of errors.
  4630.     Use ctlinnd to throttle,  pause, or shutdown innd first
  4631.     - see the manual page for ctlinnd.
  4632.  
  4633.  
  4634.   V. INSTALLATION OF XVNEWS, A SUN OPENWINDOWS
  4635.      NEWSREADER
  4636.  
  4637.    1. Create a directory /usr/local/xvnews2.1 and cd to this
  4638.       directory.
  4639.  
  4640.    2. Ftp to dutiws.twi.tudelft.nl and get the file
  4641.       xvnews.tar.gz from directory /pub/news.
  4642.  
  4643.    3. Ungzip and untar xvnews.
  4644.  
  4645.    4. Use your vi editor and edit the file xvnews.h
  4646.       You will need to enter your settings for:
  4647.         DOMAIN         (on my machine: "pdb.cdc.gov")
  4648.         ORGANIZATION   (on my machine: "Centers for Disease
  4649.                           Control Atlanta, GA, USA")
  4650.         NNTPSERVER     (on my machine:
  4651.                                "giardia.pdb.cdc.gov")
  4652.       These defaults can be overridden by environment
  4653.       variables (see the xvnews man page).
  4654.  
  4655.    5. Compile xvnews by typing: "make".  I get some errors
  4656.       on my system, but the program runs OK.  Copy xvnews
  4657.       to /usr/local/bin and xvnews.man to directory:
  4658.       /usr/local/man/man1 as xvnews.1
  4659.  
  4660. -- 
  4661.  George Will, Rush Limbaugh, John Sununu, Pat Buchanan, James Kilpatrick, Mona
  4662.   Charen, G. Gordon Liddy, Robert Novak, Bay Buchanan, Pat Robertson, Joseph
  4663.    Sobran, Paul Harvey, Phyllis Schafly, Maureen Reagan, and John McLaughlin
  4664.           always bemoan the need for more conservative media voices.
  4665.